Verplaatsen en vervangen als dezelfde bestandsnaam al bestaat?

Hier is onderstaande code die het individuele bestand zal verplaatsen en vervangen:

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)

Als ik dezelfde opdracht uitvoer en het bestand verplaats dat al in de dst folderbestond, krijg ik shutil.Error: Destination path './dstFolder/file.txt' already exists. Hoe verplaatsen en vervangen als dezelfde bestandsnaam al bestaat?


Antwoord 1, autoriteit 100%

Als u het volledige pad naar de bestemming specificeert (niet alleen de map), zal shutil.moveelk bestaand bestand overschrijven:

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

Antwoord 2, autoriteit 4%

Ik heb het laten overschrijven door een volledig pad op te geven voor zowel de bron als het doel in het verplaats-commando…
vergeet niet om een ​​dubbele schuine streep toe te voegen voor Windows-paden.

# 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.

Other episodes