2

所以我想将一些文件和目录从一个位置复制到另一个位置。很容易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)
4

1 回答 1

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)
于 2011-05-12T19:30:49.970 回答