Python 似乎有复制文件的功能(例如 shutil.copy
)和复制目录的功能(例如 shutil.copytree
),但我没有找到任何功能处理两者。当然,检查您是要复制文件还是目录很简单,但这似乎是一个奇怪的遗漏。
真的没有像 unix cp -r
命令那样工作的标准函数,即支持目录和文件并递归复制吗?在 Python 中解决这个问题的最优雅的方法是什么?
最佳答案
建议您先调用shutil.copytree
,如果抛出异常,则使用 shutil.copy
重试.
import shutil, errno
def copyanything(src, dst):
try:
shutil.copytree(src, dst)
except OSError as exc: # python >2.5
if exc.errno in (errno.ENOTDIR, errno.EINVAL):
shutil.copy(src, dst)
else: raise
关于python - 在 Python 中递归复制文件或目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1994488/