我尝试使用Python读取文件。记事本显示有200行。
f = open('record.txt', 'r')
for line in f.readlines():
print line
第17行出现问题,读取过程遇到错误的EOF。那么如何跳过假EOF并阅读休息线?感谢。
第17行看起来像这样:Iˌ$hǃɓǃ ɓI˔$hǃɓǃ ɓBɔ+Iʅ뭶DtHăɓǃ ɓBɔ+LΨBDŽ+Ĥhǃɓǃ ɓBɔ+Iʅ뭶DtHăɓǃ ɓBɔ+LΨBDŽ+ĤhLΨC
答案 0 :(得分:1)
查看给出的行示例,您显然试图在文本模式下读取二进制文件。
你必须使用二进制模式来读取二进制文件以避免不同类型的问题,包括歪曲行结尾,由于EOF控制字符而过早停止读取,在转码为UTF8时丢失信息,反之亦然(因为所有UTF编码都是有损的) ),等等。
Binary mode is enabled by adding "b"
to list of your mode chars:
onProgressUpdate(String... message)
此外,为了将来参考,f = open('record.txt', 'rb')
for line in f.readlines():
print line
一次读取内存中的整个文件,如果文件很大,这可能是不需要的。通常迭代文件通常会更好 - 它与.readlines()
相同,但是逐行读取行。所以,它可以很简单:
.readlines()
但是,如果您的文件在阅读时可能会发生变化,则这不适用。