即使在Python中导入简单的txt文件时,UnicodeDecodeError也是如此

时间:2016-05-08 19:21:38

标签: python io

我想将一个简单的文本文件导入Python。例如,这里是example.txt

的内容
hello
my
friend

很简单。但是,当我尝试导入文件并阅读它时:

f = open('example.txt')
f.read()

我收到以下错误:

Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    f.read()
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/encodings/ascii.py", line 26, in decode
return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xff in position 0: ordinal not in range(128)

这个问题的根源是什么?显然,文件中没有任何非ascii字符。

我已经在IDLE,终端(Mac OSX)和Rodeo中尝试了这一点,并且在所有方面都遇到了类似的问题。

我对Python很陌生,我担心我可能在安装时搞砸了。我多年来一直在下载各种版本,直接来自Python,Anaconda,macports等等,我想知道各种来源是不是很好玩......

OSX 10.11.4上的Python 3.5.1。

1 个答案:

答案 0 :(得分:1)

也许您的文件使用编码UTF-8 with BOM(字节顺序标记)保存。尝试将文件显式保存为UTF-8(无BOM)。虽然BOM不包含在ASCII编解码器中,但它会导致UnicodeError

希望这有帮助!