File read()方法报错原因
f = open(r'C:\temp.txt')f
<_io.TextIOWrapper name='C:\\temp.txt' mode='r' encoding='cp936'>
f.read()
#想问一下这里为什么会报错
Traceback (most recent call last):
File "<pyshell#14>", line 1, in <module>
f.read()
UnicodeDecodeError: 'gbk' codec can't decode byte 0xaf in position 8: illegal multibyte sequence
试试 open(r'C:\temp.txt', encoding='utf-8') 解码错了,gbk去解码(该字符串变成Unicode),''illegal multibyte sequence"的意思是没法子解码了。
可能是字符串不是gbk编码,却是gbk编码去解码。打个比方吧,字符串是utf-8的,但用gbk去解码,肯定会出错。 懂了,感谢二位 本帖最后由 jackz007 于 2022-10-29 11:51 编辑
f = open(r'C:\temp.txt')
这个语句按文本模式打开文件 'C:\temp.txt'
f . read()
这一句读取文件全部文本,Python 实际上从文件中读取到的是字节码,需要经过解码才能成为 Python 字符串,如果按前面的文件打开方式,解码将会按照 Windows 缺省的 'GBK' 编码格式进行,但是,这个文件的字节码并不是采用 'GBK'编的码,于是就会出现解码错误。
这个问题可以通过更换解码引擎进行解决
f = open(r'C:\temp.txt' , encoding = 'UTF-8')
jackz007 发表于 2022-10-29 11:49
这个语句按文本模式打开文件 'C:\temp.txt'
这一句读取文件全部文本,Python 实际上从文 ...
感谢
页:
[1]