Python 2.7 如果已存在相同的文件名,是否移动和替换?

Python 2.7 如果已存在相同的文件名,是否移动和替换?,python-2.7,shutil,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) 如果我执行相同

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

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文件夹中的文件
,我将得到
shutil.Error:Destination path./dstFolder/file.txt'已存在
。如果已经存在相同的文件名,如何进行移动和替换?

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

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

我通过在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.

在网络驱动器上也可以这样做吗?我有一个文件的完整路径,但它没有过度引用,退出时显示“file Exists”@user1767754我只希望在源是符号链接的情况下发生这种情况。也许你可以问一个后续问题?@ecatmur我独立测试了同样的问题。1.如果目标目录已具有源文件名,并且您执行了
shutil.move(src_filename,dst_dirname)
操作,则会引发错误
错误:目标路径“dst_dirname/src_filename”已存在
。2.但是,如果您执行
dst_filename=os.path.join(dst_dirname,os.path.basename(src_filename));shutil.move(src_filename,dst_filename)
-->则不会引发异常。如果要删除旧文件并保存新文件,如何修改此选项@ecatmur@ak3191覆盖意味着删除旧文件并创建新文件。