Python bz2 未压缩文件大小

Nup*_*pur 2 python compression

我正在使用 Python 2.7。我有一个 .bz2 文件,我需要弄清楚其组件文件的未压缩文件大小,而无需实际解压缩它。我已经找到了对 gzip 和 tar 文件执行此操作的方法。有人知道 bz2 文件的方法吗?

非常感谢

Bla*_*air 5

正如其他答案所述,如果不解压缩数据,这是不可能的。但是,如果解压后的数据很大,可以通过分块解压并添加分块大小来实现:

>>> import bz2
>>> with bz2.BZ2File('data.bz2', 'r') as data:
...     size = 0
...     chunk = data.read(1024)
...     while chunk:
...         size += len(chunk)
...         chunk = data.read(1024)
... 
>>> size
11107
Run Code Online (Sandbox Code Playgroud)

或者(可能更快,虽然我没有对此进行分析)您可以seek()到文件的末尾,然后使用它tell()来找出它的长度:

>>> import bz2
>>> import os
>>> with bz2.BZ2File('data.bz2', 'r') as data:
...     data.seek(0, os.SEEK_END)
...     size = data.tell()
...
>>> size
11107L
Run Code Online (Sandbox Code Playgroud)