同样的代码,在Atom中运行正常,在PyCharm中运行报错

木曜
  • 7

同样的代码,在Atom中运行正常,在Pycharm中运行报错.
Python版本:Python3.5

具体代码如下:

from bs4 import BeautifulSoup

html_file = '/Users/yu7eng/Desktop/1_2_homework_required/index.html'

with open(html_file, 'r') as web_data:
    soup = BeautifulSoup(web_data, 'lxml')
    titles = soup.select('body > div > div > div.col-md-9 > div > div > div > div.caption > h4 > a')
    print(titles)

PyCharm环境:
图片描述

PyCharm执行结果:
图片描述

在Atom执行结果:
图片描述

回复
阅读 4.4k
4 个回答

问题解决,添加encoding='utf-8'后正常,具体如下:

from bs4 import BeautifulSoup

html_file = '/Users/yu7eng/Desktop/1_2_homework_required/index.html'

with open(html_file, 'r', encoding='utf-8') as web_data:
    soup = BeautifulSoup(web_data, 'lxml')
    titles = soup.select('body > div > div > div.col-md-9 > div > div > div > div.caption > h4 > a')
    print(titles)
UnicodeDecodeError: 'ascii' codec can't decode byte 0x...

编码异常,你可以看到Atom右下角的编码是UTF-8Pycharm你的截图里看不到,也在右下角,你可以看下,是不是UTF-8
如果不是的话,打开File -> Settings -> Editor -> File Encodings里修改:
如图

最后建议,Python文件的第一行都写成#coding=utf-8,能省不少麻烦,尤其涉及中文的时候。

配置没导过来吧

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏