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

时间:2015-10-05 15:26:57

标签: python tar tarfile

我正在使用pythons awk -v r=$r -v a=$a '{OFS=FS="\t"} {if ($1 < $a) print $r}' file.txt 来解压缩foo.tar.gz文件。我想访问提取的文件夹,但有时提取的文件夹的名称与打包文件的名称不同。我需要一种方法来控制提取的文件夹的名称,或者一个返回值,告诉我提取的文件夹的名称。

示例

  

打包文件:tarfile.extractall()

     

解压缩文件夹:foo-rc-2.0.0.tar.gz

2 个答案:

答案 0 :(得分:1)

tarfile.extractall()只需将tar包中的所有文件提取到当前目录或您选择的目录中。

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

如果您需要移动这些提取的内容,请在新目录中执行此操作,以便您可以在该目录中选择所有

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

答案 1 :(得分:0)

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