Rodeo UnicodeDecodeError:'ascii'编解码器无法解码位置0的字节0xef:序号不在范围内(128)

时间:2017-08-03 14:23:32

标签: python-3.x csv utf-8

我刚开始使用Python3。我正在尝试使用Rodeo IDE

打开一个csv文件
fp = open('Proteomics_Data.csv') # open file on read mode
lines = fp.read().split("\n") # create a list containing all lines

我收到错误我将其粘贴到下方。

UnicodeDecodeError: 'ascii' codec can't decode byte 0xef in position 0: ordinal not in range(128)
---------------------------------------------------------------------------
UnicodeDecodeError                        Traceback (most recent call last)
<ipython-input-347-aebf19dd596a> in <module>()
----> 1 lines = fp.read().split("\n")
/Users/alessandro/anaconda/lib/python3.6/encodings/ascii.py in decode(self, input, final)
     24 class IncrementalDecoder(codecs.IncrementalDecoder):
     25     def decode(self, input, final=False):
---> 26         return codecs.ascii_decode(input, self.errors)[0]
     27 
     28 class StreamWriter(Codec,codecs.StreamWriter):
UnicodeDecodeError: 'ascii' codec can't decode byte 0xef in position 0: ordinal not in range(128)

到目前为止我发现的终端没有设置为UTF-8,但显然Python 3不需要UTF-8。我不确定这可能是与IDE相关的问题吗?

2 个答案:

答案 0 :(得分:2)

尝试在open函数调用中指定编码。

fp = open('Proteomics_Data.csv', encoding='utf-8')

答案 1 :(得分:0)

当我将文件保存为CSV时,我实际上有两个选项:

CSV UTF-8 (Comma delimited)(.csv)Comma Separated Values(.csv)

如果我使用第二个选项(逗号分隔值)保存,我不需要添加encoding='utf-8'