将空目录添加到tar文件中

6
我该如何在Python中将一个空目录添加到tar文件中,而无需首先在磁盘上创建它?
在本地文件系统中创建一个空目录,并将其添加到tar文件很容易,但会产生不必要的开销。
然而,直接在tar文件中创建一个空目录似乎并不容易。我的尝试看起来像这样:
import tarfile

with tarfile.open("test.tbz2",mode='w:bz2') as t:
    t.add("conf_dir") # does not work
    t.add(tarfile.TarInfo("conf_dir")) # does not work
1个回答

11

使用addfile()函数,并将TarInfo.type更改为tarfile.DIRTYPE即可。

import tarfile    

with tarfile.open("test.tbz2",mode='w:bz2') as f:
    t = tarfile.TarInfo('mydir')
    t.type = tarfile.DIRTYPE
    f.addfile(t)

我只是进来警告大家,你可能也想要这样做:t.mode = 0o755否则,你将无法访问从tar文件中提取的目录。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接