Déplacer les fichiers et le répertoire, même s'ils existent déjà dans la destination

StackOverflow https://stackoverflow.com/questions/5983320

  •  12-11-2019
  •  | 
  •  

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)
Était-ce utile?

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
scroll top