Wie kopiere ich mit Python ein ganzes Verzeichnis mit Dateien in ein vorhandenes Verzeichnis?

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

Führen Sie den folgenden Code aus einem Verzeichnis aus, das ein Verzeichnis namens bar (das eine oder mehrere Dateien enthält) und ein Verzeichnis namens baz (das ebenfalls eine oder mehrere Dateien enthält) enthält. . Stellen Sie sicher, dass es kein Verzeichnis mit dem Namen foo gibt.

import Shutil Shutil.Copytree("Bar", "Foo") Shutil.CopyTree("Baz", " foo") 

Es wird fehlschlagen mit:

$ python copytree_test.py Traceback (letzter Aufruf zuletzt): Datei "copytree_test.py", Zeile 5, in <Modul> shutdown.copytree("baz", "foo") Datei "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/shutil.py", Zeile 110, in Copytree-Datei "/System/ Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/os.py", Zeile 172, in makedirs OSError: [Errno 17] Datei existiert: "foo" 

Ich möchte, dass dies genauso funktioniert, als ob ich Folgendes eingegeben hätte:

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

Muss ich shutil.copy() verwenden, um jede Datei in baz nach foo zu kopieren? (Nachdem ich den Inhalt von "bar" bereits mit shutil.copytree() nach "foo" kopiert habe?) Oder gibt es einen einfacheren/besseren Weg?