1 现象
在编写文件读的代码:
python">src_file_path = "a:\\src.txt"
with open(src_file_path) as file:data = file.readline()
出现如下错误:
> UnicodeDecodeError: 'gbk' codec can't decode byte 0xab in position 2: illegal multibyte sequence
2 分析
从含义来判断,基本是跟字符的编码相关。
该文本文件本身的编码是UTF-8格式。
3 解决方法
3.1 使用二进制的方式
在读取文件时,加入参数‘b’,即使用二进制的方式读取,代码如下:
python">src_file_path = "a:\\src.txt"
with open(src_file_path, 'rb') as file:data = file.readline()
存在的问题是,文本也以二进制的方式读取,不利于后续相关的文本操作,比如,使用split操作,就会提示:
> TypeError: a bytes-like object is required, not 'str'
3.2 指明文件编码
打开文件时,指明文件编码,代码如下:
python">src_file_path = "a:\\src.txt"
with open(src_file_path, encoding='UTF-8') as file:data = file.readline().split(" ")
可以解决方法一中存在的问题。