4

我有很多扩展名为“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/”中。

你有什么想法吗?
谢谢 !

4

2 回答 2

12

您使用带有错误参数的 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()
于 2015-04-02T14:57:37.917 回答
4

我喜欢上下文管理器:

import tarfile

def extract_bz2(filename, path="."):
    with tarfile.open(filename, "r:bz2") as tar:
        tar.extractall(path)
于 2018-04-11T17:50:08.013 回答