有时就是想把一套文件拷到一个已经存在的目录里,先删再建有点绕。Python 3.8+ 的 shutil.copytree(..., dirs_exist_ok=True) 正好省一步。
环境:Python 3.8+,只用标准库。
from pathlib import Path
from shutil import copytree
src = Path('src')
dst = Path('workdir')
src.mkdir(exist_ok=True)
(dst / 'old.txt').parent.mkdir(parents=True, exist_ok=True)
(src / 'a.txt').write_text('hello', encoding='utf-8')
(dst / 'old.txt').write_text('keep me', encoding='utf-8')
copytree(src, dst, dirs_exist_ok=True)
print(sorted(p.name for p in dst.iterdir()))
适合那种“只想覆盖一部分内容”的小脚本。