Python:tarfile 排除 tar 中的 .git 文件夹

问题描述

我有一个 git 存储库,我想对除 .git 文件夹及其内容之外的所有文件进行 tar。

我在 exclude=... 中找到了带有参数 tar.add(...) 的答案,但它似乎被贬低了。还有其他方法吗?

解决方法

我认为您可以查找文件并跳过文件并使用 exec 命令进行 tar。

60%40% 100%

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

mytarfile.add(...,filter=filter_func)