Comment copier un répertoire entier de fichiers dans un répertoire existant à l’aide de Python ?

| | | | | | | | | | | | | | | | |

Exécutez le code suivant à partir d'un répertoire qui contient un répertoire nommé bar (contenant un ou plusieurs fichiers) et un répertoire nommé baz (contenant également un ou plusieurs fichiers) . Assurez-vous qu'il n'y a pas de répertoire nommé foo.

import shutdown shutdown.copytree("bar", "foo") shutdown.copytree("baz", " foo") 

Cela échouera avec :

$ python copytree_test.py Traceback (appel le plus récent en dernier) : Fichier "copytree_test.py", ligne 5, dans <module> shutdown.copytree("baz", "foo") Fichier "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/shutil.py", ligne 110, dans le fichier copytree "/System/ Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/os.py", ligne 172, dans makedirs OSError : [Errno 17] Le fichier existe : "foo" 

Je veux que cela fonctionne de la même manière que si j'avais tapé :

$ mkdir foo $ cp bar/* foo/ $ cp baz/* foo/ 

Dois-je utiliser shutil.copy() pour copier chaque fichier de baz dans foo ? (Après avoir déjà copié le contenu de "bar" dans "foo" avec shutil.copytree() ?) Ou existe-t-il un moyen plus simple/meilleur ?