9.11 distutils.dir_util -- Operazioni su alberi di directory

Questo modulo fornisce funzioni per operare sulle directory e su alberi di directory.

mkpath( name[, mode=0777, verbose=0, dry_run=0])
Crea una directory ed ogni directory intermedia mancante. Se la directory già esiste (o se name è una stringa vuota, che significa la directory corrente, che ovviamente esiste), non fa nulla. Solleva l'eccezione DistutilsFileError se non riesce a creare alcune directory (per esempio alcune sottodirectory esistono, ma c'è un file al posto di una directory). Se verbose è vero, stampa un sommario di una riga per ogni mkdir su stdout. Restituisce la lista delle directory attualmente create.

create_tree( base_dir, files[, mode=0777, verbose=0, dry_run=0])
Crea tutte le directory vuote sotto base_dir, necessarie per inserire files. base_dir è semplicemente il nome di una directory che non necessariamente deve già esistere; files è una lista di nomi di file da interpretare relativamente a base_dir. base_dir + la porzione di directory di ogni file in files verrà creata se già non esiste. Le opzioni mode, verbose e dry_run sono come quanto già visto per mkpath().

copy_tree( src, dst[preserve_mode=1, preserve_times=1, preserve_symlinks=0, update=0, verbose=0, dry_run=0])
Copia un intero albero di directory src in una nuova posizione dst. Sia src che dst devono essere nomi di directory. Se src non è una directory, viene sollevata l'eccezione DistutilsFileError. Se src non esiste, viene creata con mkpath(). Il risultato finale della copia è che ogni file in src viene ricorsivamente copiato in dst. Restituisce la lista dei file che sono stati copiati o che dovrebbero essere stati copiati, usando il loro nome di uscita. Il valore restituito non è affetto da update o dry_run: è semplicemente la lista di tutti i file sotto src, con il nome cambiato per andare sotto dst.

preserve_mode e preserve_times sono gli stessi di copy_file in distutils.file_util; si noti che si applica solo ai file regolari, non alle directory. Se preserve_symlinks è vero, i collegamenti vengono copiati come collegamenti (sulle piattaforme che li supportano!); altrimenti (il predefinito), verrà copiata la destinazione. update e verbose sono gli stessi di copy_file().

remove_tree( directory[verbose=0, dry_run=0])
Ricorsivamente rimuove le directory e tutti i file e directory ivi contenuti. Ogni errore viene ignorato (a parte il fatto che siano riportati su stdout se verbose è vero).

** Alcune di queste dovrebbero essere sostituite con il modulo shutil? **

Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.