Hoe kopieer ik een volledige map met bestanden naar een bestaande map met Python?

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

Voer de volgende code uit vanuit een map die een map bevat met de naam bar (die een of meer bestanden bevat) en een map met de naam baz (die ook een of meer bestanden bevat) . Zorg ervoor dat er geen map is met de naam foo.

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

Het zal mislukken met:

$ python copytree_test.py Traceback (meest recente oproep laatst): bestand "copytree_test.py", regel 5, in <module> shutil.copytree("baz", "foo") Bestand "/System/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/shutil.py", regel 110, in copytree Bestand "/System/ Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/os.py", regel 172, in makedirs OSError: [Errno 17] Bestand bestaat: "foo" 

Ik wil dat dit op dezelfde manier werkt alsof ik het volgende had getypt:

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

Moet ik shutil.copy() gebruiken om elk bestand in baz naar foo te kopiëren? (Nadat ik de inhoud van "bar" al naar "foo" heb gekopieerd met shutil.copytree()?) Of is er een eenvoudigere/betere manier?