python - 读取文本文件时如何修复此 cp950 "illegal multibyte sequence"UnicodeDecodeError?

标签 python python-3.x

我的老师教我们如何使用“exec”,但我得到了一个错误:

UnicodeDecodeError: 'cp950' codec can't decode byte 0xe6 in position 1814: illegal multibyte sequence

我使用:

exec(open("somefile.py").read())

如何解决这个问题?

最佳答案

鉴于这大概是 Python 3 源代码,可能的编码是 UTF-8(它是 Python 3 源代码的标准编码)。

如果是这种情况,将 open("somefile.py") 更改为 open("somefile.py", encoding="utf-8") 将指定显式编码,覆盖区域设置默认值,这应该允许您正确读取它。

对于惯用代码,您还需要使用 with 语句(以保证文件的确定性关闭),使其:

with open("somefile.py", encoding="utf-8") as f:
    exec(f.read())

关于python - 读取文本文件时如何修复此 cp950 "illegal multibyte sequence"UnicodeDecodeError?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49021589/

相关文章:

python - 将整数添加到 python 列表中的特定项目?

python - 机械化可以完全替换为请求[python]

Python3多重赋值与内存地址

python - 基于列中嵌套的 JSON 添加 DataFrame 列

python - 如何在 Python 中绘制置信区间?

python - MechanicalSoup 棘手的 html 表格

java - Android 和 CherryPy

python - 剖析 Aaron Swartz 用来从 Jstor 文件中下载数千篇文章的脚本

python - 如何使用 pandas 创建具有条件日期时间的新列

python - 多字符串替换Python