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/