读取txt文件 遇到 “UnicodeDecodeError: 'gbk' codec can't decode byte 0x93 in position 125: illegal multibyte sequence 错误 看论文,实现论文里面代码的过程中,要求使用python的时候,我需要去读一个txt文件,这个txt文件很大,有989M。这个时候,我们如果直接使用电脑去打开文件,那么我们就会面临一个问题,什么问题呢?电脑卡顿,并且不一定能打开该文件,这个时候,我们需要使用工具来进行开发,python就是不二的选择.如上面陈述的那样,我遇到了问题,下面是我读取文件使用的代码:
........此处省略其他代码.........
lines = []
with open(args.f, 'r') as inf:
lines = inf.readlines()
........此处省略其他代码.........
错误结果如下图:
在网上百度了下解决办法,其中一个说是直接将读取的二进制强制改为str类型,其代码如下:
lines = []
with open(args.f, 'r') as inf:
for line in inf:
line = str(line)
#进行其他操作
但是,我这里发现并不适合我的代码,分析了下错误提示,既然是不能将二进制的编码转换成'gbk',那么使用utf-8
进行转换可以吗?接下来我们直接修改代码为:
........此处省略其他代码.........
lines = []
with open(args.f, 'r', enconding='utf-8') as inf:
lines = inf.readlines()
........此处省略其他代码.........
执行成功,那么显然可以转换成utf-8
。如果你是逐行读取的话,可以参考上面说到的强制转换为str的那段代码,或者将转化为str和改变编码同时使用。
注意:欢迎转载,转载时请注明来源