首页 > 解决方案 > 我有这个包含一堆字节和一些文本的非文本文件,我该如何将文本与其他文本完全分开?

问题描述

该文件相对较长(大约 3MB),所以它不是可以手动完成的,其中的文本量可能达到一千多行分散在它上面(并且也有换行符,所以文本格式正确)。关于字节部分的结束位置和文本部分的开始位置(文本也以字节为单位,这不是 txt 文件),我没有任何格式的指示,除了一大块被字节包围的文本然后在那里是另一块文本。删除 notepad++ 中的所有非 ASCII 字符确实会删除其中的很大一部分,但仍有一大堆其他内容遗漏。

首选语言是 Python。

标签: python

解决方案


使用似乎与内容匹配的编码(可能是utf8)打开文件,然后忽略所有错误:

with open("my_file", encoding="utf8", errors="ignore") as f:
   for i, line in enumerate(f, 1):
       # do something with line

读取文件时查看Python中的UnicodeDecodeError,如何忽略错误并跳转到下一行?了解更多信息。


推荐阅读