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 folder
bestond, 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.move
elk 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.