UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0xad in position 2: illegal multibyte sequence
在这里插入图片描述

翻译:'gbk’编解码器无法解码位置2的字节0xad:非法的多字节序列
文件包括两种类型:文本文件和二进制文件。
文本文件:一般由单一特定编码的字符组成,如UTF-8编码,内容容易统一展示和阅读。
二进制文件:直接由比特0和比特1组成,没有统一字符编码。
两者最主要的区别在于是否有统一的字符编码。

同时我发现只有要打开的文档中存在中文时才会报错。
当要打开的在这里插入图片描述
当要打开的文档中如上所述只有英文时,原出错代码能正常运行,只有要打开的文档中存在中文时,程序才会报错。

有以上定义可知出错原因及解决方案:
错误原因:txt文件是utf-8编码,用文本文件方式打开时,编码需要转为utf-8,而用二进制文件打开时,则不需要转。
解决办法:在以“rt”方式的open方法中多加一个参数:encode = “UTF-8”,而在以“rb”方式的open方法中不用。
在这里插入图片描述
改为:
在这里插入图片描述

以上情况只针对打开的文档中存在中文的情况
如果要打开的文档中只有英文,则一般不会出错。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐