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

Uncompress an tar.bz2 file with Python tarfile module

我有很多扩展名为 "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/".

你有什么想法吗?
谢谢!

您使用 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()

我喜欢上下文管理器:

import tarfile

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