我备份了 Facebook Messenger。它默认保存为 html 文件。与我交谈过的每个人的每个文件。我拥有的最大文件超过 80MB。当我打开它时,我可以看到代码中有数千个拼写错误。代码显示 Á 或 Å 代替 A,æ 代替 ae 等等,等等。
在这种状态下,我无法打开它并通过任何程序阅读,因为它以charmap错误结束。
Traceback (most recent call last):
File "C:/Users/Filip/.PyCharmCE2018.2/config/scratches/test.py", line 35, in <module>
messages = open("message.html","r").read()
File "C:\Users\Filip\AppData\Local\Programs\Python\Python36\lib\encodings\cp1252.py", line 23, in decode
return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: 'charmap' codec can't decode byte 0x81 in position 1917064: character maps to <undefined>
是我的文件编辑器有问题,下载问题(下载 5GB 花了超过 8 小时 - 谢谢,Facebook)还是只是这样大的文本文件保存在单行中没有机会正常工作?
我试图打开文件:
-记事本
-EmEditor - 具有讽刺意味的是,它处理文件的时间比记事本还要糟糕
编辑1:
好的,我设法将整个 htlm 代码拆分为简单的纯 txt,例如:
=A=
jakiefry
15November201511:34
=F=
mediumfry
15November201511:34
=A=
xD
15November201511:34
=A=
mozemediumjestemjakies
15November201511:34
=F=
xDD
15November201511:34
=A=
iostatniotyledejavumam
15November201511:34
...(900 000 lines more)
并逐行阅读,直到找到有问题的行。我使用了这段代码:
f = open('messege.txt')
try:
line = f.readline()
while line:
print(line)
line = f.readline()
f.close()
except Exception:
stop = input("stop before it crash")
print("and when I press enter it crash")
现在我正在寻找删除有问题的行的方法,或者干脆跳过它。也许在阅读时我应该创建新文件,只保存所有好的行吗?但是,如何跳过出错的行,所以很高兴继续。敬请期待,新的更新即将到来;)