python读取文件出错怎么办|python读取txt文件失败咋办
首先我们看看正常的读取数据过程:
with open('test.txt','r',encoding='utf-8') as f:#很多时候由于数据量比较大,所以并不建议一次性读取,这里我们选择的是逐行一次读取数据 for i in f: pass
在读取数据的过程中有时候会因为某一行数据中有一些特殊字符而出现编码错误,
这里我们先看一张报错的图片:
从报错中我们可以看到这里说是:utf-8编解码器不能解码字节0x9g在位置3703的无效字节,出现这个错误的时候我第一时间想到的是通过异常处理直接跳过,但是想想try加在哪里呢?加在 for i in f: 这里吗?但是想想这样就算跳过了异常那不还是拿不到后面的数据吗?加 for循环里面就更加不可能了,因为出错是错现在读取过程中,而不是读取之后。
突然发现这个问题真的很恼火呀,如果是数据量比较小我倒是可以直接打开文件到出错的地方将错误数据修改,或者将那条数据删除都行,但是文件太大了,此时又无法通过打开文件去修改。之后在朋友的提醒下我发现可以通过在读取的时候将数据以其他的方式来编码,这个时候是可以正常读取到数据的。
with open('test.txt','r', encoding='ISO-8859-1') as f:for i in f:pass
这里我们将编码格式改为 ISO-8859-1 ,此时我们将数据打印出来看看,
这都是什么东西啊,我的数据明明是中文的,现在成这样了,这也不是我想要的结果啊。不要着急,接下来的操作就是将你的数据还原了。
with open('test.txt','r', encoding='ISO-8859-1') as f: for i in tqdm(f): #此处将数据打印出来的时候我们会发现数据中中文部分会如上图一样。 print(i) #因此处可能还是会因为数据中的特出字符导致报错,所以添加一个try在这里 #假如该条数据出错你可以选择不要或者选择将该条数据记录都行,这个看个人了。 try: #在这里我们将读取出来的数据先用 ‘ISO-8859-1’格式给它编码,然后通过‘utf-8’给它解码 x = i.encode('ISO-8859-1').decode('utf-8') except: x = '' if x != '': #此处打印出来的你就会发现你需要的数据出来了。 print(x) with open('test1.txt', 'a', encoding='utf-8') as f: f.write(x)
将打印结果贴在此处:
相关内容
-
u盘软件怎么拷到电脑上|电脑怎么传软件文件到另
u盘软件怎么拷到电脑上|电脑怎么传软件文件到另一个电脑,文件...
-
u盘程序错误怎么回事|u盘复制文件出现错误怎么
u盘程序错误怎么回事|u盘复制文件出现错误怎么解决,怎么回事,...
-
电脑如何将磁盘格式化|磁盘格式化参数选择
电脑如何将磁盘格式化|磁盘格式化参数选择,磁盘格式化,选择,...
-
旧电脑数据迁移到新电脑的教程|旧电脑所有东西
旧电脑数据迁移到新电脑的教程|旧电脑所有东西如何转移至新...
-
pdf文件打开是乱码怎么办|怎么解决pdf转word乱
pdf文件打开是乱码怎么办|怎么解决pdf转word乱码问题,乱码问...
-
杀毒后u盘里文件隐藏了怎么办|u盘杀毒后文件不
杀毒后u盘里文件隐藏了怎么办|u盘杀毒后文件不见了怎么恢复,...
-
电脑wifi密码忘记怎么修改|家里wifi密码忘了怎
电脑wifi密码忘记怎么修改|家里wifi密码忘了怎么找回,修改,密...
-
苹果线容易坏怎么保护|苹果数据线老是坏解决办
苹果线容易坏怎么保护|苹果数据线老是坏解决办法,数据线,次数...
-
怎么清理c盘大文件|c盘满了怎么深度清理c盘空间
怎么清理c盘大文件|c盘满了怎么深度清理c盘空间,深度清理,空...
-
u盘里的文件夹删除不了怎么办|如何彻底删除u盘
u盘里的文件夹删除不了怎么办|如何彻底删除u盘文件防止恢复,...
-
怎么恢复病毒隐藏文件|如何找回被杀毒软件隔离
怎么恢复病毒隐藏文件|如何找回被杀毒软件隔离的文件,毒软件,...
-
笔记本电脑如何恢复备份|笔记本电脑文件误删除
笔记本电脑如何恢复备份|笔记本电脑文件误删除如何快速恢复,...
-
忘记密码进入 bios怎么改|电脑忘记密码如何修改
忘记密码进入 bios怎么改|电脑忘记密码如何修改密码,忘记密码...
-
ipad上的文件管理软件|ipad怎么进行文件管理
ipad上的文件管理软件|ipad怎么进行文件管理,文件管理软件,文...
-
磁盘读取错误怎么回事|steam磁盘写入错误的解决
磁盘读取错误怎么回事|steam磁盘写入错误的解决方法,错误,磁...