我有一个快速的问题,所以即时通讯尝试在python中编写一些东西来打开一个文件,我在运行它时发现一个奇怪的错误,我的代码包括下面的错误,但我从来没有见过它和我不确定这意味着什么。如果有人有任何想法,我真的很感激它。谢谢!
码
def readfile():
filename = input(str("What is the files name you would like to import "))
f = open(filename)
for line in f:
print(line)
错误
builtins.UnicodeDecodeError:' ascii'编解码器不能解码字节0xe2 位置32:序数不在范围内(128)
答案 0 :(得分:6)
这是一种编码不匹配 - 您正在尝试以ASCII(Python从您的操作系统设置中检测到的)读取文件,当它以其他方式编码时。您可以在打开时指定编码:
f = open(filename, encoding='utf-8')
UTF-8可能也不是正确的编码,但如果您希望该文件主要包含英文单词,那么这可能是一个很好的猜测。理想情况下,如果可以的话,你应该尝试以另一种方式找出文件的编码 - 检查成功打开它的任何程序的设置可以提供帮助,或者如果你是在类Unix系统上,{{1命令可能会告诉你。