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 代码的集群上使用多个节点/核心

python - Windows 10 pip安装“连接失败”

python - setup.py 中的 2 到 3 未涵盖测试?

python - 类型错误 : takes 0 positional arguments but 1 was given

python - 如何解析以`Z`结尾的日期时间?

java - 如何访问DRF服务器端的请求主体模型字段?

python - 对齐在不同时间开始和结束的音频文件

python - 如何获得特定模型的ID?

python - pandas groupby将两列之间的差异求和,并获得每组的平均值