Come copiare un file in Python

di Lorenzo Neri
19 visualizzazioni

Come copiare un file in Python? Se ti stai chiedendo come fare sei nel posto giusto: lo scopriamo in questo articolo!

Se stai già usando i file da un po’ in Python, ti sarai accorto che ci sono tante funzionalità per poterli gestire: se così non fosse, ti invito a scoprire in questo mio articolo come si possono gestire i file in Python.

… Posso anche dirti brevemente una piccola grande cosa: il pacchetto “os” di Python non prevede metodi per copiare i file. Ecco, l’ho detto.

Per questo ho menzionato appunto l’articolo in questione, ma insomma: cerchiamo di capire come copiare questi file.

Il pacchetto “shutil” permette di copiare file

Se il pacchetto “os” non fa al caso nostro, ce n’è un altro che viene in nostro aiuto: si chiama “shutil”.

Questo pacchetto mette a disposizione diversi metodi che ti permettono di copiare un file in Python.

Partiamo dal metodo più essenziale e semplice di tutti per portare a termine ciò che ti stai chiedendo da inizio articolo: “copyfile”.

Copyfile: un nome, una garanzia per copiare 😀

Sì, direi che il nome non lascia assolutamente niente al caso. Come usarlo?

Beh, così:

from shutil import copyfile

copyfile(file_da_copiare, file_in_cui_copiare)

Semplice ed immediato anche nell’utilizzo! Ma ovviamente non voglio lasciare nulla al caso.

Intanto questo metodo prevede due parametri. Il file da copiare, il primo, il file che sarà la copia, il secondo.

La destinazione, quindi il secondo parametro, dev’essere scrivibile: altrimenti viene generata un’eccezione di tipo “IOError”.

Sempre parlando del secondo parametro, se già esiste un file con il nome indicato, viene sovrascritto: PERCIÒ FAI ATTENZIONE!

I parametri stessi, quindi entrambi, sono i path da passare come stringhe, quindi di tipo str.

Tuttavia, se non vuoi fare casino con i tipi e con i path per copiare un file, puoi usare un’altra funzione.

Di solito, tramite il pacchetto “os” possiamo utilizzare una funzionalità molto pratica che è “os.path”.

Si tratta però di un tipo ben specifico e non di una stringa pura!

In questo caso, ti suggerisco di usare la funzione “copy” e non “copyfile” se è tua intenzione usare “os.path” anziché delle stringhe nude e crude.

Funzioni ulteriori per copiare

Il pacchetto “shutil mette a disposizione ben quattro metodi diversi fra loro per copiare file in Python.

Rispettivamente sono: copy, copyfile, copy2 e copyfileobj che ti invito a scoprire per ognuno dei quattro link che ti ho lasciato come referenza 😉

Potrebbero interessarti

Lascia un commento

Questo sito potrebbe fare uso di cookie e siccome l'UE mi obbliga a fartelo presente, eccoti il classico banner dove puoi decidere come gestirli. Accetta Leggi di più