Déplacer les fichiers et le répertoire, même s'ils existent déjà dans la destination
Question
Je souhaite donc copier certains fichiers et répertoires d'un emplacement à un autre.Assez facile avec shutil.move
, mais je rencontre des problèmes lorsque les fichiers ou répertoires sont déjà dans la destination.L'erreur que j'obtiens est Destination path '...' already exists
.
J'ai essayé os.rename
et cela n’a pas non plus produit les résultats escomptés.Existe-t-il un moyen simple de copier des fichiers et la structure du répertoire vers un autre emplacement, même si ces fichiers et la structure du répertoire sont déjà présents dans la destination ?
Voici ce que j'ai maintenant :
fileList = os.listdir('/Users/john.leschinski/Desktop/testSrc')
dest = '/Users/john.leschinski/Desktop/testMove'
for i in fileList:
src = '/Users/john.leschinski/Desktop/testSrc/' + i
shutil.move(src,dest)
La solution
Que diriez-vous:
def move_over(src_dir, dest_dir):
fileList = os.listdir(src_dir)
for i in fileList:
src = os.path.join(src_dir, i)
dest = os.path.join(dest_dir, i)
if os.path.exists(dest):
if os.path.isdir(dest):
move_over(src, dest)
continue
else:
os.remove(dest)
shutil.move(src, dest_dir)
src_dir = '/Users/john.leschinski/Desktop/testSrc'
dest_dir = '/Users/john.leschinski/Desktop/testMove'
move_over(src_dir, dest_dir)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow