我在python中编写程序并使用tarfile
来提取tarfiles。其中一些tarfiles包含以/
开头的文件夹或(对于Windows \
),这会引起问题(文件被提取到错误的位置)。我如何解决这个问题并确保提取最终到达正确的位置?
答案 0 :(得分:2)
docs for 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)
答案 1 :(得分:0)
你尝试过extractall()方法吗?我记得其中一个方法参数包含应该提取存档的信息。