【问题标题】:Excluding directories from tarfile module从 tarfile 模块中排除目录
【发布时间】:2016-06-08 15:56:52
【问题描述】:

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

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

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

我可以在此处找到 solution 后排除这些。但是,是否可以更改此方法以排除目录,或者是否有其他方法可以完成?

【问题讨论】:

    标签: python tarfile


    【解决方案1】:

    以您发布的其他答案中的示例为基础,您能不能这样做:

    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)
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    • 2019-10-03
    • 2011-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多