/foo/bar
baz
将档案中的baz
内容提取到/foo/bar
档案包含:
baz/ file1.txt
源目录包含:
foo/ bar/ file2.txt
提取后我希望它是:
foo/ bar/ file1.txt file2.txt
提取到临时目录,然后将baz
的内容移动到目标位置,这是有效的,因为baz
目录将始终具有相同的名称。
还有其他想法吗?
答案 0 :(得分:2)
您可以使用tarfile库的extract()
,extractall()
或extractfile()
方法。您应该能够以这种方式访问存档中的非顶级对象。
请注意,extractall()中的path
不是归档中的路径,而是要将其提取到的路径,因此将baz放在那里将无济于事。
您可能先打电话getmembers()
,然后将列表缩小到您想要的位置,然后调用上述提取方法之一。