web-dev-qa-db-ja.com

pythonに同じファイル名が既に存在する場合は移動して置き換えます

個々のファイルを移動および置換するコードを以下に示します

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を取得しています

32
user1891916

(ディレクトリだけでなく)宛先へのフルパスを指定すると、shutil.moveは既存のファイルを上書きします:

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