在我的工作中,我会把网站收集起来,然后把它们写到gzip压缩的web档案中(带扩展名)warc.gz公司"). 我使用python2.7.11和warc0.2.1库。在
我注意到,对于大多数文件,我不能完全阅读它们与warc库。例如,如果warc.gz公司档案里有517条记录,我只能读大约200条。在
经过一番研究,我发现这个问题只发生在gzip文件上。扩展名为“warc”的文件不存在此问题。在
我发现有些人也有这个问题(https://github.com/internetarchive/warc/issues/21),但没有找到解决办法。在
我想Python2.7.11中的“gzip”中可能有一个bug。也许有人有这方面的经验,知道如何解决这个问题吗?在
提前谢谢!在
示例:
我创造新的warc.gz公司像这样的文件:
import warc
warc_path = "\\some_path\file_name.warc.gz"
warc_file = warc.open(warc_path, "wb")
要写我使用的记录:
^{pr2}$这创造了完美”warc.gz公司“文件。他们没有问题。所有,包括“\r\n”都是正确的。但问题是从我读这些文件开始的。在
要读取我使用的文件:
warc_file = warc.open(warc_path, "rb")
要循环查看我使用的记录:
for record in warc_file:
...
问题是在循环过程中并没有找到所有的记录“warc.gz公司“文件,而它们都是为“warc”文件找到的。在warc库中处理这两种类型的文件。在
似乎^{} 中的自定义} 进行文件拆分和在{a3}中读取的自定义
gzip
处理、使用^{gzip
被整体打破(使用python 2.7.9、2.7.10和2.7.11进行了测试)。它在receives no data instead of a new header时停止。在基本stdlib ^{} 似乎可以很好地处理连锁文件,因此这应该也可以:
相关问题 更多 >
编程相关推荐