移动文件和目录,即使它们已经存在于dest中

时间:2011-05-12 19:21:39

标签: python move shutil

所以我想将一些文件和目录从一个位置复制到另一个位置。使用shutil.move很容易,但是当文件或目录已经在目标中时,我遇到了问题。我得到的错误是Destination path '...' already exists

我尝试了os.rename,但也没有产生预期的结果。 是否有一种简单的方法将文件和目录结构复制到另一个位置,即使这些文件和目录结构已经存在于dest中?

这就是我现在所拥有的:

fileList = os.listdir('/Users/john.leschinski/Desktop/testSrc')  
dest = '/Users/john.leschinski/Desktop/testMove'  
for i in fileList:  
    src = '/Users/john.leschinski/Desktop/testSrc/' + i  
    shutil.move(src,dest)

1 个答案:

答案 0 :(得分:7)

怎么样:

def move_over(src_dir, dest_dir):
    fileList = os.listdir(src_dir)
    for i in fileList:
        src = os.path.join(src_dir, i)
        dest = os.path.join(dest_dir, i)
        if os.path.exists(dest):
            if os.path.isdir(dest):
                move_over(src, dest)
                continue
            else:
                os.remove(dest)
        shutil.move(src, dest_dir)

src_dir = '/Users/john.leschinski/Desktop/testSrc'
dest_dir = '/Users/john.leschinski/Desktop/testMove'
move_over(src_dir, dest_dir)