这是 Python 文档的摘录:
如果给出了 exclude,它必须是一个接受一个文件名参数并返回一个布尔值的函数。根据这个值,相应的文件要么被排除(真),要么被添加(假)。
我必须承认我不知道这意味着什么。
此外:
2.7 版后已弃用: exclude 参数已弃用,请改用 filter 参数。为了获得最大的可移植性,filter 应该用作关键字参数而不是位置参数,以便最终删除 exclude 时代码不会受到影响。
好的......以及“过滤器”的定义:
如果指定了过滤器,它必须是一个接受 TarInfo 对象参数并返回更改后的 TarInfo 对象的函数。如果它返回 None,则 TarInfo 对象将从存档中排除。
... 回到原点 :)
我真正需要的是一种将排除的数组(或“:”分隔的字符串)传递给 tarfile.add 的方法。
如果您尝试解释 PyDocs 中的那些段落,我不介意。
PS:
这只是我的想法:
- 制作源目录内容列表的数组
- 弹出排除
- 对剩下的单个数组成员执行 tar.add
但是,我希望以更有文化的方式完成