123 votes

Copie de plusieurs fichiers en Python

Comment copier tous les fichiers présents dans un répertoire vers un autre répertoire en utilisant Python. J'ai le chemin source et le chemin destination sous forme de chaîne.

4voto

Dustin Michels Points 72

Voici un autre exemple de fonction de copie récursive qui vous permet de copier le contenu du répertoire (y compris les sous-répertoires) un fichier à la fois, que j'ai utilisé pour résoudre ce problème.

import os
import shutil

def recursive_copy(src, dest):
    """
    Copy each file from src dir to dest dir, including sub-directories.
    """
    for item in os.listdir(src):
        file_path = os.path.join(src, item)

        # if item is a file, copy it
        if os.path.isfile(file_path):
            shutil.copy(file_path, dest)

        # else if item is a folder, recurse 
        elif os.path.isdir(file_path):
            new_dest = os.path.join(dest, item)
            os.mkdir(new_dest)
            recursive_copy(file_path, new_dest)

EDIT : Si vous le pouvez, utilisez simplement shutil.copytree(src, dest) . Il faut cependant que le dossier de destination n'existe pas déjà. Si vous devez copier des fichiers dans un dossier existant, la méthode ci-dessus fonctionne bien !

0 votes

Exactement ce dont j'avais besoin, quelque chose pour copier récursivement les sous-répertoires, merci !

0 votes

os.mkdir(new_dest) doit être récursif : os.makedirs(new_dest)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X