Python3解决问题:读取文件时,出现乱码或者“UnicodeDecodeError 'gbk' codec can't decode” 错误

  • 使用的电脑系统:Windows 10 64位
  • 使用的开发集成环境:Anaconda3
  • 使用的Python的版本:python 3.5.2

出现的错误

读取文件时,出现乱码或者UnicodeDecodeError: 'gbk' codec can't decode byte 0xXX in position XX: incomplete multibyte sequence 错误

出现错误的原因

这两个错误可能会出现一个,两个错误的出现的原因是一样的:当我们使用了一个不正确的编码方式去读取一个不是用这个编码方式编码的文件时,轻者出现乱码,重者出现UnicodeDecodeError错误。

实例

1.txt文件:

我爱Python
           我学习Python
           不积跬步,无以至千里
           不积小流,无以成江海

>>> f = open('C:\\Users\\XiangyangDai\\Desktop\\1.txt')
           >>> f.read()
           Traceback (most recent call last):
             File "<pyshell#1>", line 1, in <module>
              f.read()
           UnicodeDecodeError: 'gbk' codec can't decode byte 0xad in position 18: illegal multibyte sequence

解决方法:

读取文件时,指定正确的编码方式:

>>> f = open('C:\\Users\\XiangyangDai\\Desktop\\1.txt', encoding='utf-8')
           >>> f.read()
           '我爱Python\n我学习Python\n不积跬步,无以至千里\n不积小流,无以成江海'

在使用with语句时,也是一样的,例如在第035讲:图形用户界面入门:EasyGui中,读取文档内容:

猜你喜欢

转载自blog.csdn.net/qq_41556318/article/details/84476704