0

我正在尝试使用 tarfile 模块对目录的内容进行 tar。

假设这个名为“A”的目录有几个子目录,“a”和“a1”等......有没有办法在尝试添加时从 tarfile 对象中排除这些目录?例如,我有一个要排除的文件列表,我将其放入列表中:

EXCLUDE_FILES = ['README', '.gitignore']

我可以按照此处找到的解决方案排除这些。但是,是否可以更改此方法以排除目录,或者是否有其他方法可以完成?

4

1 回答 1

0

基于您发布的其他答案的示例,您不能这样做:

def exclude_function(filename):
    return os.path.isdir(filename):

mytarfile.add(..., exclude=exclude_function)

或者为了简化,也许:

mytarfile.add(..., exclude=os.path.isdir)

使用过滤器:

def filter_function(tarinfo):
   if os.path.isdir(tarinfo.name):
        return None
   return tarinfo

mytarfile.add(..., filter=filter_function)
于 2016-06-08T16:03:09.550 回答