我正在尝试阅读一个dictionary_format_file.txt,但我一直在收到错误。
我阅读了其他帖子,但他们完全有道理,但我无法解决我的问题。
感谢任何帮助。
import ast
path = '/Users/xyz/Desktop/final/'
filename = 'dictionary_format_text_file.txt'
with open((path+filename), 'r') as f:
s=f.read()
s=s.encode('ascii', 'ignore').decode('ascii')
错误:
Traceback (most recent call last):
File "/Users/xyz/Desktop/final/boolean_query.py", line 347, in <module>
s=s.encode('ascii', 'ignore').decode('ascii')
File "/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/encodings/ascii.py", line 26, in decode
return codecs.ascii_decode(input, self.errors)[0]
builtins.UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 81201: ordinal not in range(128)
答案 0 :(得分:2)
f.read
返回一个字节字符串,而不是Unicode字符串。当您尝试在其上使用encode
时,Python 2首先尝试使用'ascii'
编解码器解码它,并且启用了错误(Python 3只会在不尝试解码的情况下给您一个错误)。隐藏decode
就是产生错误。你可以通过摆脱多余的encode
:
s=s.decode('ascii', 'ignore')