Python: copiare una directory in modo ricorsivo

Python: copiare una directory in modo ricorsivo

In Python, esistono diverse librerie che possono essere utilizzate per copiare ricorsivamente una directory, ma una delle più comuni è shutil.

Per utilizzare questa libreria, è necessario importarla all'interno del file Python e utilizzare la funzione copytree(). Questa funzione accetta due parametri: il percorso della directory da copiare e il percorso di destinazione in cui verrà creata la copia.

Ad esempio, se si vuole copiare la directory project dalla cartella corrente alla cartella backup, il codice sarebbe il seguente:


import shutil

shutil.copytree('project', 'backup/project')

Questo codice copierà la directory project all'interno della cartella backup, creando una nuova directory chiamata project.

È importante notare che, se la directory di destinazione esiste già, la funzione copytree() solleverà un'eccezione FileExistsError. Per evitare questo errore, è possibile utilizzare la funzione rmtree() della stessa libreria shutil per rimuovere la directory di destinazione prima di copiare la directory originale:


import shutil
import os

target_dir = 'backup/project'

if os.path.exists(target_dir):
    shutil.rmtree(target_dir)

shutil.copytree('project', target_dir)

Questo codice rimuoverà la directory di destinazione se esiste già, e quindi copierà la directory originale nella cartella di destinazione.

Torna su