Python中读取txt文本出现:
‘gbk’ codec can’t decode byte 0xac in position 10594: illegal multibyte sequence
illegal multibyte sequence”意思是非法的多字节序列,意思是说通过gbk的方式解码出现了错误。
解决:
方法1:使用UTF-8格式打开
f = open(path,’r+’, encoding=’UTF-8′)
方法2:在读取文本的时候加入参数‘b’,不会提示错误,通过输出读取的数据显示。
file = open(path, ‘rb’)
可能传错的原因:
在开发中发现,当使用csv文件生成类似百万级的大量数据时,虽然使用wps软件打开看起来像是没有问题,但是notepad++打开.csv文件时,最后可能存在报错信息。这些报错就是导致明明使用了“UTF-8”,但仍然报错的原因。
查询csv编码,并使用对应编码打开文件:
import csvimport chardet with open('filename.csv', 'rb') as f: result = chardet.detect(f.read()) encoding = result['encoding'] with open('filename.csv', encoding=encoding) as csvfile: reader = csv.reader(csvfile) # rest of your code