python - 我有这个包含一堆字节和一些文本的非文本文件,我该如何将文本与其他文本完全分开?
问题描述
该文件相对较长(大约 3MB),所以它不是可以手动完成的,其中的文本量可能达到一千多行分散在它上面(并且也有换行符,所以文本格式正确)。关于字节部分的结束位置和文本部分的开始位置(文本也以字节为单位,这不是 txt 文件),我没有任何格式的指示,除了一大块被字节包围的文本然后在那里是另一块文本。删除 notepad++ 中的所有非 ASCII 字符确实会删除其中的很大一部分,但仍有一大堆其他内容遗漏。
首选语言是 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,如何忽略错误并跳转到下一行?了解更多信息。
推荐阅读
- java - 为什么我的 CardView 不会出现在我的片段中?
- c++ - 智能指针(unique_ptr)自定义删除器错误 C2027 & C2338
- django - Django Rest 框架弹性搜索:RequestError 400 parsing_exception
- for-loop - 如何在 Rstudio 中处理带有大对象的 for 循环?
- python - 验证准确性并没有变得更好
- java - Spark 任务可序列化异常
- vpn - 为客户端生成配置文件后 OpenVPN 服务器未启动
- r - 计算在 R 中按该顺序获得黑桃、红心和梅花的概率
- javascript - NodeJS - 异步函数内的代码乱序执行
- reactjs - 如何使用 createStackNavigator 根据 Authentication 创建不同的主屏幕?