使用python打开一个txt文件,逐行读取,但是txt本身含有乱码,报错。有什么方法可以忽略这些错误继续读?

我现在用fp = codecs.open()和for eachline in fp:这两句,准备对这个文件逐行分析。但是目标txt里面有不可读的内容,所以总是到那一部分就报错退出了,求一个方法忽略不能读的内容,把能读的读进去?
我现在用的是一个这样简单地逻辑:

i = 1
while i <= 1000000:
try:
for eachline in fp:
print (eachline)
i = i + 1
except Exception:
pass
但是有问题就是txt文件并没有读完整,感觉好像是遇到特定的行就认为是到了文件末尾了,实际上并没有到。

第1个回答  2012-11-01
使用readlines(),方便快捷!
第2个回答  2012-10-26
大约就是这样。没有调试过。

fp=fopen("xxxx.txt","rt")
en=0
while True:
try:
eachline=fp.readline()
except:
en+=1
if en>10000:break #如果出错1万次就不再读了。防死循环
continue
if x=="":break
print eachline
fp.close()本回答被网友采纳
第3个回答  2012-10-31
打开文件的时候用readlines()呢
第4个回答  2012-10-25
循环里面加上try: .... except:.... 试试啊
相似回答