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

标签 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' 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/

相关文章:

python - 使用 amsmath 和 sfmath 进行绘图标记的 Latex 字体样式问题

python - 在 Python 中使用 Pandas/matplotlib 更改 X 轴标签

python - 创建一个包含 2 个变量的列表

python - 从另一个共享全局变量的 python 文件运行命令序列的最佳方法是什么?

python - math.sqrt 结果 TypeError :'float' 对象无法解释为整数

Python、CSV、根据内容跳行

python - Windows 任务栏(Windows 7?)——如何在控制面板通知对话框中设置应用程序名称

python - 哪个更准确,x**.5 还是 math.sqrt(x)?

python - 如何使用 Codex API 获取 token 或代码嵌入?

Python 成对使用迭代器