5

前提

  • 我有一个目录/foo/bar
  • 我有一个包含目录的 tar 文件baz

问题

baz将存档中的内容提取到/foo/bar

例子

档案包含:

巴兹/
 文件1.txt

源目录包含:

富/
  酒吧/
    文件2.txt

提取后我希望它是:

富/
  酒吧/
    文件1.txt
    文件2.txt

到目前为止的解决方案

提取到一个临时目录,然后将其内容移动baz到目标位置,因为我的baz目录将始终具有相同的名称,所以这是可行的。

还有其他想法吗?

4

1 回答 1

3

您可以使用tarfile库的extract()extractall()extractfile()方法。您应该能够以这种方式访问​​存档中的非顶级对象。

请注意,pathin extractall() 不是存档内的路径,而是您要将其提取到的路径,因此将 baz 放在那里无济于事。

您可能会先调用getmembers()然后将列表缩减为您想要的,然后调用上述提取方法之一。

于 2011-11-06T20:53:29.547 回答