gpt4 book ai didi

python - 递归文件复制到子目录

转载 作者:太空宇宙 更新时间:2023-11-03 15:27:42 25 4
gpt4 key购买 nike

我需要将当前文件夹中的所有文件和文件夹复制到一个子目录中。最好的方法是什么?我尝试了以下代码片段,但它失败了,因为如果目标目录已经存在,它就会失败。

def copy(d=os.path.curdir):
dest = "t"
for i in os.listdir(d):
if os.path.isdir(i):
shutil.copytree(i, dest)
else:
shutil.copy(i, dest)

我觉得同样的任务可以用更好更简单的方式完成。我该怎么做?

最佳答案

我永远不会在 python 上这样做,但想到了以下解决方案。看起来不简单,但应该可以,可以简化(没查,sorry,现在没法上电脑):

def copyDirectoryTree(directory, destination, preserveSymlinks=True):
for entry in os.listdir(directory):
entryPath = os.path.join(directory, entry)
if os.path.isdir(entryPath):
entrydest = os.path.join(destination, entry)
if os.path.exists(entrydest):
if not os.path.isdir(entrydest):
raise IOError("Failed to copy thee, the destination for the `" + entryPath + "' directory exists and is not a directory")
copyDirectoryTree(entrypath, entrydest, preserveSymlinks)
else:
shutil.copytree(entrypath, entrydest, preserveSymlinks)
else: #symlinks and files
if preserveSymlinks:
shutil.copy(entryPath, directory)
else:
shutil.copy(os.path.realpath(entryPath), directory)

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com