如果给出了exclude,则它必须是一个使用一个文件名参数并返回布尔值的函数。根据此值,相应文件被排除(真)或被添加(假)。
例如,如果要排除所有以字母“ a”开头的文件名,则可以执行以下 *** 作:
def exclude_function(filename): if filename.startswith('a'): return True else: return Falsemytarfile.add(..., exclude=exclude_function)
对于您的情况,您想要类似…
EXCLUDE_FILES = ['README', 'INSTALL', '.cvsignore']def exclude_function(filename): if filename in EXCLUDE_FILES: return True else: return Falsemytarfile.add(..., exclude=exclude_function)
…可以减少到…
EXCLUDE_FILES = ['README', 'INSTALL', '.cvsignore']mytarfile.add(..., exclude=lambda x: x in EXCLUDE_FILES)
更新资料
TBH,我不必担心过时警告,但是如果您想使用新
filter参数,则需要类似…
EXCLUDE_FILES = ['README', 'INSTALL', '.cvsignore']def filter_function(tarinfo): if tarinfo.name in EXCLUDE_FILES: return None else: return tarinfomytarfile.add(..., filter=filter_function)
…可以减少到…
EXCLUDE_FILES = ['README', 'INSTALL', '.cvsignore']mytarfile.add(..., filter=lambda x: None if x.name in EXCLUDE_FILES else x)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)