所以我想将一些文件和目录从一个位置复制到另一个位置。使用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)
答案 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)