场景
在Python进行文件操作时,如果编码、解码格式不统一,则经常会遇到这个错误:UnicodeDecodeError: 'gbk' codec can't decode byte 0x8a in position 18: incomplete multibyte sequence
Traceback (most recent call last):
File "F:/python_projects/io_file/my_file.py", line 4, in <module>
content = my_test_file.read()
UnicodeDecodeError: 'gbk' codec can't decode byte 0x8a in position 18: incomplete multibyte sequence
分析原因
UnicodeDecodeError: 'gbk' codec can't decode byte 0x8a in position 18: incomplete multibyte sequence
这种错误是读写文件时,编码、解码格式不统一造成的。
所以首先要检查你的文件的编码格式,我用的PyCharm开发工具,当前编码格式:
当前文件的编码格式
说明我用代码读取文件时不是“utf-8”。至此,那么解决方法就有了。
解决方法
下面介绍该错误的解决方法,将'utf-8'换成'gbk'也适用。
(1)首先在打开文本的时候,设置其编码格式,如:open('io_test.txt',encoding='utf-8');
(2)若(1)仍不能解决,说明文中出现了连'utf-8'也无法编码的字符,可以使用'ignore'属性进行忽略,如:open('io_test.txt',encoding=’utf-8’,errors='ignore');
(3)还有一种常见解决方法为open('1.txt').read().decode('utf-8','ignore')
这样就可以正常读取了,io_test.txt文件种的内容为:
2018年世界杯半决赛全部结束,7月15日23:00法国和克罗地亚将会师决赛竞逐大力神杯,7月14日22:00比利时与英格兰队争夺第三名。
更多了解,可关注公众号:人人懂编程
微信公众号:人人懂编程
网友评论