移动文件和目录,即使目标已存在
我想把一些文件和文件夹从一个地方复制到另一个地方。用 shutil.move
这个方法很简单,但当目标位置已经有同样的文件或文件夹时,我就遇到问题了。系统给我的错误提示是 Destination path '...' already exists
,意思是目标路径已经存在。
我试过用 os.rename
,但也没有得到想要的结果。有没有简单的方法可以把文件和文件夹结构复制到另一个地方,即使那些文件和文件夹在目标位置已经存在?
这是我现在的代码:
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 个回答
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)