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

Move and replace if same file name already exists?

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

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。同名文件已存在如何移动替换?

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

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

我通过在移动命令中为源和目标提供完整路径来覆盖它... 记得为 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.