使用Python tarfile模块解压缩tar.bz2文件

时间:2015-04-02 14:52:31

标签: python tarfile

我有很多扩展名为“tar.bz2”的文件,我想解压缩它们。 所以我使用“tarfile”模块,如下所述: https://docs.python.org/3/library/tarfile.html

我尝试以下代码:

import tarfile
tar = tarfile.open("path_to/test/sample.tar.bz2", "r:bz2")  
for i in tar:
  tar.extractall(i)
tar.close()

但没有任何反应:tar.bz2文件尚未解压缩到文件夹“path_to / test /".

你有什么想法吗? 谢谢!

2 个答案:

答案 0 :(得分:6)

您使用带有错误参数的tar.extractall。我想,你需要这样的东西

import tarfile
tar = tarfile.open("path_to/test/sample.tar.bz2", "r:bz2")  
tar.extractall()
tar.close()

import tarfile
tar = tarfile.open("path_to/test/sample.tar.bz2", "r:bz2")  
for i in tar:
  tar.extractfile(i)
tar.close()

如果您需要将文件提取到某个特定文件夹

import tarfile
tar = tarfile.open("path_to/test/sample.tar.bz2", "r:bz2")  
tar.extractall(some_path)
tar.close()

答案 1 :(得分:0)

我喜欢上下文管理器:

import tarfile

def extract_bz2(filename, path="."):
    with tarfile.open(filename, "r:bz2") as tar:
        tar.extractall(path)