使用 tarfile.extractall() 解压缩的 tar.gz 文件夹的不同名称

Different name of unpacked tar.gz folder using tarfile.extractall()

我正在使用 pythons tarfile.extractall() 解压一个 foo.tar.gz 文件。我想访问提取的文件夹,但有时提取的文件夹与打包文件的名称不同。我需要一种方法来控制提取文件夹的名称,或者 return 值告诉我提取文件夹的名称。

例子

packed file: foo-rc-2.0.0.tar.gz

unpacked folder: foo-2.0.0-rc

您可以使用.getnames()列出tarfile obj的内容。

tarfile.extractall() 只是将 tarball 中的 所有 文件解压缩到当前目录,或您选择的目录。

如果 tarball 包含具有嵌套目录结构的文件,那么将提取这些文件。您看到的是那个目录结构。这些目录的名称(可以超过 1 个)不必与 tarball 的名称相对应。

如果您需要移动这些提取的内容,请在 新的空目录 中进行,这样您就可以拿起所有内容 在该目录中:

os.mkdir('extraction')
tarball.extractall('extraction')
for name in os.listdir('extraction'):
     # move that name.