使用python的时候经常会遇到文本的编码与解码问题,其中很常见的一种解码错误如题目所示,下面介绍该错误的解决方法,将‘gbk’换成‘utf-8’也适用。 

(1)、首先在打开文本的时候,设置其编码格式,如:open(‘1.txt’,encoding=’gbk’);  (2)、若(1)不能解决,可能是文本中出现的一些特殊符号超出了gbk的编码范围,可以选择编码范围更广的‘gb18030’,如:open(‘1.txt’,encoding=’gb18030’);  (3)、若(2)仍不能解决,说明文中出现了连‘gb18030’也无法编码的字符,可以使用‘ignore’属性进行忽略,如:

 

open("1.txt",encoding="gb18030",errors="ignore")

(4)、还有一种常见解决方法为

open("1.txt").read().decode("gb18030","ignore")

csv.Error: line contains NULL byte解决方法

import csv

with open(r"C:\Users\20346\Desktop\1.csv", encoding="gb18030", errors="ignore") as f:
    as_csv = csv.reader((line.replace('\0', '') for line in f), delimiter=",")
    for i in as_csv:
        print(i)

自己用到第三种就实现了,大佬的文章膜拜一下