web-dev-qa-db-fra.com

Comment copier un fichier avec une structure / chemin de répertoire en utilisant python?

La première chose que je dois mentionner ici, je suis novice en python.

Maintenant, j'ai un fichier situé dans:

a/long/long/path/to/file.py

Je veux copier dans mon répertoire personnel avec un nouveau dossier créé:

/home/myhome/new_folder

Mon résultat attendu est:

/home/myhome/new_folder/a/long/long/path/to/file.py

Existe-t-il une bibliothèque pour le faire? Si non, comment puis-je y parvenir?

45
Js Lim

Pour créer tous les répertoires de destination de niveau intermédiaire, vous pouvez utiliser os.makedirs() avant de copier:

import os
import shutil

srcfile = 'a/long/long/path/to/file.py'
dstroot = '/home/myhome/new_folder'


assert not os.path.isabs(srcfile)
dstdir =  os.path.join(dstroot, os.path.dirname(srcfile))

os.makedirs(dstdir) # create all directories, raise an error if it already exists
shutil.copy(srcfile, dstdir)
67
jfs

jetez un oeil à shutil . shutil.copyfile(src, dst) copiera un fichier dans un autre fichier.

Notez que shutil.copyfile ne créera pas de répertoires qui n'existent pas déjà. pour cela, utilisez os.makedirs

24
ewok