32.Python编程:UnicodeDecodeError: 'gbk' codec can't decode byte 0xab in position 18: illegal multib...

场景

在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 
    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开发工具,当前编码格式:


32.Python编程:UnicodeDecodeError: 'gbk' codec can't decode byte 0xab in position 18: illegal multib..._第1张图片
当前文件的编码格式

说明我用代码读取文件时不是“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比利时与英格兰队争夺第三名。

更多了解,可关注公众号:人人懂编程


32.Python编程:UnicodeDecodeError: 'gbk' codec can't decode byte 0xab in position 18: illegal multib..._第2张图片
微信公众号:人人懂编程

你可能感兴趣的:(32.Python编程:UnicodeDecodeError: 'gbk' codec can't decode byte 0xab in position 18: illegal multib...)