如何解决有没有办法在不调用 next() 的情况下跳过 Python 中 bz2 文件的前 x 行?
我正在尝试阅读最新的维基数据转储,同时跳过第一行,比如 100 行。
有没有比重复调用 next()
更好的方法?
WIKIDATA_JSON_DUMP = bz2.open('latest-all.json.bz2','rt')
for n in range(100):
next(WIKIDATA_JSON_DUMP)
或者,有没有办法在 bash 中拆分文件,例如,使用 bzcat
将选择块通过管道传输到较小的文件?
解决方法
如果它是使用类似 bgzip 的东西压缩的,您可以跳过块,但它们将包含可变数量的行,具体取决于压缩率。对于作为单个流的原始 bzip 文件,由于压缩格式的性质,我认为您别无选择,只能读取并丢弃要跳过的行。
,您可以在 bash 中尝试以下操作,例如跳过前 10 行:
bzcat -d -c /tmp/myfile.bz2 | tail -n +11
注意尾部有你想要跳过的 N+1 行。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。