gpt4 book ai didi

Python:在 tarfile 中使用过滤器

转载 作者:行者123 更新时间:2023-11-28 18:23:15 24 4
gpt4 key购买 nike

我正在编写一个使用 tarfile 模块的备份脚本。我是 python 的初学者。这是我的脚本的一部分 -所以我有一个需要在 tar.gz 中存档的路径列表。看到这个post ,我想到了以下内容。现在存档已创建,但扩展名为 .tmp 和 .data 的文件不会被忽略。我正在使用 python 3.5

L = [path1, path2, path3, path4, path5]
exclude_files = [".tmp", ".data"]
# print L

def filter_function(tarinfo):
if tarinfo.name in exclude_files:
return None
else:
return tarinfo

with tarfile.open("backup.tar.gz", "w:gz") as tar:
for name in L:
tar.add(name, filter=filter_function)

最佳答案

您是在比较扩展名和全名。

只需使用 os.path.splitext 并比较扩展名:

 if os.path.splitext(tarinfo.name)[1] in exclude_files:

更短:用三元表达式和 lambda 重写 add 行以避免辅助函数:

tar.add(name, filter=lambda tarinfo: None if os.path.splitext(tarinfo.name)[1] in exclude_files else tarinfo)

关于Python:在 tarfile 中使用过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43408350/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com