我有一个快速的问题,所以我试图在 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' codec can't decode byte 0xe2 in position 32: ordinal not in range(128)
最佳答案
这是一种编码不匹配——您试图读取 ASCII 格式的文件(Python 已从您的操作系统设置中检测到该文件),但它是以其他方式编码的。您可以在打开时指定编码:
f = open(filename, encoding='utf-8')
UTF-8 在这里可能也不是正确的编码,但如果您希望文件主要包含英文单词,这可能是一个不错的猜测。理想情况下,如果可以的话,您应该尝试以其他方式找出文件的编码 - 检查任何成功打开它的程序的设置会有所帮助,或者如果您使用的是类 Unix 系统,file
命令可能会告诉你。
关于python - 在 python 3 中打开文件奇怪错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28005733/