def recursive_overwrite(src, dest, ignore=None):
if os.path.isdir(src):
if not os.path.isdir(dest):
os.makedirs(dest, exist_ok=True)
files = os.listdir(src)
if ignore is not None:
ignored = ignore(src, files)
else:
ignored = set()
for f in files:
if f not in ignored:
recursive_overwrite(os.path.join(src, f),
os.path.join(dest, f),
ignore)
else:
if not os.path.exists(dest) or not filecmp.cmp(src, dest):
print('copy {}'.format(src))
shutil.copyfile(src, dest)
shutil.copystat(src, dest)
评论列表
文章目录