¿Cómo copio un directorio completo de archivos en un directorio existente usando Python?

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

Ejecute el siguiente código desde un directorio que contenga un directorio llamado bar (que contiene uno o más archivos) y un directorio llamado baz (que también contiene uno o más archivos) . Asegúrese de que no haya un directorio llamado foo.

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

Fallará con:

$ python copytree_test.py Rastreo (última llamada más reciente): Archivo "copytree_test.py", línea 5, en <módulo> shutil.copytree("baz", "foo") Archivo "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/shutil.py", línea 110, en copytree Archivo "/System/ Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/os.py", línea 172, en makedirs OSError: [Errno 17] El archivo existe: "foo" 

Quiero que esto funcione de la misma manera que si hubiera escrito:

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

¿Necesito usar shutil.copy() para copiar cada archivo en baz a foo? (¿Después de haber copiado el contenido de "bar" en "foo" con shutil.copytree()?) ¿O hay una manera más fácil/mejor?