在Windows上解压缩bz2文件

时间:2017-08-19 23:39:59

标签: python windows python-2.7 anaconda bz2

我正在尝试使用以下代码段解压缩bz2文件,该代码段在各个地方提供:

bz2_data = bz2.BZ2File(DATA_FILE+".bz2").read()
open(DATA_FILE, 'wb').write(bz2_data)

然而,我收到的文件比预期的要小得多。

当我用7z GUI提取文件时,我收到的文件大小为248MB。但是,使用上面的代码我得到的文件是879kb。

当我读取提取的XML文件时,我可以看到文件的其余部分缺失了。

我在Windows机器上运行anaconda,并且只要理解 bz2 在文件实际结束之前达到EOF。

顺便说一句,我已经遇到了this而且this都没有做好。

1 个答案:

答案 0 :(得分:1)

如果这是一个多流文件,那么Python的bz2模块(在3.3之前)并不支持它:

  

注意此类不支持包含多个流的输入文件(例如由pbzip2工具生成的流)。读取此类输入文件时,只能访问第一个流。如果需要支持多流文件,请考虑使用第三方bz2file模块(可从PyPI获得)。该模块提供了Python 3.3的BZ2File类的后端,它支持多流文件。

另一种替代方式:bz2file应该可以使用。