我有很多扩展名为“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 /".
你有什么想法吗? 谢谢!
答案 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)