在python中,如果提取tar.gz文件,如何获取或设置结果文件的名称

时间:2017-08-30 17:13:58

标签: python tarfile compression

我的问题是: 使用时:

import tarfile
tar = tarfile.open("sample.tar.gz")
tar.extractall()
tar.close()

如果压缩前的文件叫做“sampleFolder”,在我做完上述步骤之后,如何返回“sampleFolder”名称,更好地用它的完整路径,或者如何将结果设置为其他名称如“Folder”? / p>

这不是一个好问题,但我的项目实际上对此有所要求。

我必须编辑问题:如果我不知道“sampleFolder”,我可以在解压缩步骤后返回它吗

1 个答案:

答案 0 :(得分:3)

默认情况下,它将被解压缩到工作目录:

import os
os.getcwd()

因此,提取数据的路径是:

from pathlib import Path
extracted_to_path = Path.cwd() / 'sampleFolder'

要在其他位置提取:

with tarfile.open('sample.tar.gz') as tar:
    tar.extractall(path='/other/folder')

编辑:如果您只想知道档案中包含的名称"sampleFolder",则无需在某处提取。您应该使用getnames

tar.getnames()

请注意,tarball可以包含多个文件或文件夹。