python读取文本文件‘gbk‘ codec can‘t decode byte

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写入文件,再打开文件,是中文的数据,问题解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值