Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何修复此cp950“;“非法多字节序列”;读取文本文件时是否出现UnicodeDecodeError?_Python_Python 3.x - Fatal编程技术网

Python 如何修复此cp950“;“非法多字节序列”;读取文本文件时是否出现UnicodeDecodeError?

Python 如何修复此cp950“;“非法多字节序列”;读取文本文件时是否出现UnicodeDecodeError?,python,python-3.x,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(“somefil

我的老师教我们如何使用“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())

您尝试过exec(打开(“somefile.py”,“r”).read())吗?这与
exec
无关,与
somefile.py
的内容有关。该文件中有什么内容以及如何保存?(顺便说一句:我不知道为什么任何老师都会教学生关于
exec
——它远比有用的危险,甚至在这里也不可能是你想要的。)cp950?这是一个有趣的默认编码。
somefile.py
的实际编码是什么?@Gustavo:为什么会有帮助
r
是默认模式,显然是
read()
调用失败,而不是
open()
调用失败。