2. I File: Come Copiarli, Spostarli, Rinominarli o Cancellarli

In questa lezione parleremo di come sia possibile copiare, spostare, rinominare o cancellare qualsiasi tipo di file nei vostri programmi Python. Utilizzeremo alcune delle funzioni presenti nel modulo shutil, abbreviativo di Shell Utilities.


Come copiare e spostare i file con il modulo shutil

Per prima cosa vediamo un po' come possiamo copiare i file. Supponiamo di voler copiare un file chiamato 1492.txt da una cartella chiamata lezione20, ad una sottocartella chiamata storia. Per fare questo importiamo il modulo shutil e usiamo il suo metodo copy():

import shutil

shutil.copy("C:\\lezione20\\1492.txt", "C:\\lezione20\\storia")

Dobbiamo specificare due parametri, primo, il nome del file che vogliamo copiare con relativo percorso, e secondo la cartella di destinazione. Supponiamo ora di voler spostare invece un file chiamato napoleone.txt, dalla cartella lezione20 alla sottocartella storia. In questo caso usiamo la funzione move() di shutil:

shutil.move("C:\\lezione20\\napoleone.txt", "C:\\lezione20\\storia")


Come rinominare e concellare i file con il modulo os

Per poter rinominare oppure cancellare un file usiamo invece funzioni presenti nel modulo os. Supponiamo di avere, sempre nella cartella lezione20, un file cancellami.txt, possiamo fargli compiere il suo destino mediante la funzione unlink() di os. State attenti quando utilizzate unlink() perché si tratta di una funzione potentissima, il file verrà infatti permanentemente eliminato dal vostro hard disk:

import os

os.unlink("C:\\lezione20\\cancellami.txt")

Ed ecco che il file è sparito! Volendo invece di unlink() potete utilizzare remove(), che è la stessa cosa!

Supponiamo inoltre di avere anche un file rinominami.txt, e possiamo rinominarlo tramite la funzione rename():

os.rename("C:\\lezione20\\rinominami.txt", "file_rinominato.txt")