Eine schöne und einfache Methode, um mit Python Verzeichnisse und/oder Dateien zu kopieren habe ich bei stackoverflow gefunden.

import shutil, errno

def copyanything(src, dst):
    try:
        shutil.copytree(src, dst)
    except OSError as exc: # python >2.5
        if exc.errno == errno.ENOTDIR:
            shutil.copy(src, dst)
        else: raise

Das ist hilfreich, wenn vor dem Kopieren nicht bekannt ist was genau kopiert wird. Im ersten Kommentar zu dieser Antwort wird vorgeschlagen mit

os.path.isdir(src)

einfach vorher zu prüfen, ob es sich um ein Verzeichnis handelt, aber die obige Lösung ist der pythonic way dieses Problem zu lösen.