小编典典

在Python中递归复制文件或目录

python

Python似乎具有复制文件的功能(例如shutil.copy)和复制目录的功能(例如shutil.copytree),但是我还没有找到能够同时处理两者的函数。当然,检查要复制文件还是目录很简单,但这似乎很奇怪。

确实没有像unixcp -r命令那样工作的标准函数,即同时支持目录和文件以及递归复制吗?在Python中解决此问题的最优雅方法是什么?


阅读 167

收藏
2020-12-20

共1个答案

小编典典

建议您先致电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
2020-12-20