python读取文本文件’gbk’ codec can’t decode byte
python读取个文件花了n个小时,兜了一大圈子,最后终于发现问题原因。
首先,网上最基本的导入方法是这样的
file = open("D:/test111", "r",encoding='utf-8')
row = file.readlines()
print(row)
由于文本文件里有中文,用notepad直接打开文本文件,选择编码-"转为UTF-8"后点保存,代码第一句也加了encoding。
然后开局直接报错
查了一圈,有说改为gb18030的,有说‘r’改’rb’的,有说编码第一个报错,第二个打印出来的不是字符串。该改的编码也全改了。
后来仔细分析,问题的根源在print,虽然不知道深层原理,但是基本判断print就是会去以gbk的方式去encode文件,有一些它‘识别’不了的,所以报错,这和文本本身、open方式本身的编码形式都没关系。所以不print了,直接write写入文件,再打开文件,是中文的数据,问题解决。