web-dev-qa-db-fra.com

Copier le contenu du répertoire dans un répertoire avec python

J'ai un répertoire/a/b/c qui contient des fichiers et des sous-répertoires . J'ai besoin de copier le/a/b/c/* dans le répertoire/x/y/z. Quelles méthodes python puis-je utiliser?

J'ai essayé shutil.copytree("a/b/c", "/x/y/z"), mais python essaie de créer/x/y/z et déclenche un error "Directory exists".

47
prosseek

J'ai trouvé ce code qui fonctionne.

from distutils.dir_util import copy_tree

# copy subdirectory example
fromDirectory = "/a/b/c"
toDirectory = "/x/y/z"

copy_tree(fromDirectory, toDirectory)

Référence:

97
prosseek

Vous pouvez également utiliser glob2 pour collecter tous les chemins de manière récursive (à l'aide de ** caractères génériques de sous-dossiers), puis utiliser shutil.copyfile pour enregistrer les chemins.

lien glob2: https://code.activestate.com/pypm/glob2/

1
ikudyk
from subprocess import call

def cp_dir(source, target):
    call(['cp', '-a', source, target]) # Linux

cp_dir('/a/b/c/', '/x/y/z/')

Ça marche pour moi. En gros, il exécute la commande Shell cp .

1
Bowen Xu