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 == errno.ENOTDIR:
            shutil.copy(src, dst)
        else: raise

关于python - 在Python中递归复制文件或目录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1994488/

10-11 17:48