如果python中已经存在相同的文件名,则移动并替换

时间:2015-08-04 15:36:13

标签: python-2.7 shutil

以下是移动和替换单个文件的代码

import shutil
import os
src = 'scrFolder'
dst = './dstFolder/'
filelist = []

files = os.listdir( src )
for filename in files:
 filelist.append(filename)
 fullpath = src + '/' + filename
 shutil.move(fullpath, dst)

如果我执行相同的命令并移动dst folder中已存在的文件shutil.Error: Destination path './dstFolder/file.txt' already exists如果已经存在相同的文件名则移动和替换

2 个答案:

答案 0 :(得分:55)

如果您指定目的地的完整路径(而不仅仅是目录),那么shutil.move将覆盖任何现有文件:

shutil.move(os.path.join(src, filename), os.path.join(dst, filename))

答案 1 :(得分:1)

我通过在move命令中提供源和目标的完整路径来覆盖它... 请记住为Windows路径添加双斜杠。

# this is to change directories (type your own)
os.chdir("C:\REPORTS\DAILY_REPORTS")

# current dir  (to verify)
cwd = os.getcwd() 
src = cwd
dst = cwd + '\\XLS_BACKUP\\'

shutil.move(os.path.join(src, file), os.path.join(dst, file))

# nice and short.