在python 3中打开文件奇怪的错误

时间:2015-01-18 00:02:24

标签: python

我有一个快速的问题,所以即时通讯尝试在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)

1 个答案:

答案 0 :(得分:6)

这是一种编码不匹配 - 您正在尝试以ASCII(Python从您的操作系统设置中检测到的)读取文件,当它以其他方式编码时。您可以在打开时指定编码:

f = open(filename, encoding='utf-8')

UTF-8可能也不是正确的编码,但如果您希望该文件主要包含英文单词,那么这可能是一个很好的猜测。理想情况下,如果可以的话,你应该尝试以另一种方式找出文件的编码 - 检查成功打开它的任何程序的设置可以提供帮助,或者如果你是在类Unix系统上,{{1命令可能会告诉你。