J'ai un répertoire, 'Dst Directory', qui contient des fichiers et des dossiers et j'ai 'src Directory' qui contient également des fichiers et des dossiers. Ce que je veux faire, c'est déplacer le contenu de 'src Directory' vers 'Dst Directory' et écraser tous les fichiers qui existent avec le même nom. Ainsi, par exemple, "Répertoire src \file.txt doit être déplacé vers 'Dst Directory' et écraser le fichier .txt existant. Il en va de même pour certains dossiers, en déplaçant un dossier et en fusionnant son contenu avec le même dossier dans 'dst directory'.
J'utilise actuellement shutil.move pour déplacer le contenu de src vers dst mais il ne le fera pas si les fichiers existent déjà et il ne fusionnera pas les dossiers ; il mettra juste le dossier à l'intérieur du dossier existant.
Mise à jour : Pour rendre les choses un peu plus claires, ce que je fais, c'est dézipper une archive dans le répertoire Dst, puis y déplacer le contenu du répertoire Src et la réimprimer, ce qui a pour effet de mettre à jour les fichiers de l'archive zip. Ceci sera répété pour l'ajout de nouveaux fichiers ou de nouvelles versions de fichiers, etc, c'est pourquoi il faut écraser et fusionner.
Résolu : J'ai résolu mon problème en utilisant distutils.dir_util.copy_tree(src, dst), ceci copie les dossiers et fichiers du répertoire src vers le répertoire dst et écrase/fusionne là où c'est nécessaire. J'espère que cela aidera certaines personnes !
J'espère que cela a du sens, Merci.
0 votes
Notez que
distutils.dir_util.copy_tree
n'est pas en mesure de copier les fichiers spéciaux, par ex. tuyaux nommés (lancersdistutils.errors.DistutilsFileError
).