2

我正在用python编写一个程序并tarfile用来提取tarfile。其中一些 tar 文件包含以 a 开头的文件夹/(或者对于 windows \),这会导致问题(文件被提取到错误的位置)。我怎样才能解决这个问题并确保提取最终在正确的位置?

4

2 回答 2

2

文档tarfile明确警告这种情况。相反,您需要单独遍历 tar 文件和extract每个文件的内容:

import os
import tarfile

extract_to = "."
tfile = tarfile.open('so.tar')

members = tfile.getmembers()
for m in members:
    if m.name[0] == os.sep:
        m.name = m.name[1:]
    tfile.extract(m, path=extract_to)
于 2012-10-12T11:52:55.593 回答
0

您是否尝试过 extractall() 方法?我记得这个方法参数之一包含应该提取档案的信息。

于 2012-10-12T11:41:29.753 回答