CodeGym /Corsi /Python SELF IT /Lavorare con i file

Lavorare con i file

Python SELF IT
Livello 21 , Lezione 0
Disponibile

1.1 Apertura di un file

Lavorare con i file in Python è un vero piacere, poiché è fatto in modo piuttosto semplice e intuitivo. Qui non parliamo di creare o spostare file sul disco, ma di leggere e scrivere il contenuto dei file.

Lavorare con il contenuto di un file di solito segue il seguente schema:


Apertura del file 
Lavorare con i dati del file
Chiusura del file

Esempio di lettura dell'intero contenuto di un file:


file = open('example.txt', 'r')
content = file.read()
print(content)
file.close()

La funzione open è utilizzata per aprire un file. Accetta due argomenti principali: il nome del file e la modalità di accesso. La funzione restituisce un oggetto file, che poi può essere utilizzato per eseguire operazioni di lettura e scrittura.

Esempio:


file = open('example.txt', 'r')

Se viene indicato solo il nome del file, verrà cercato nella directory di lavoro corrente del programma. Se viene indicato il nome completo del file, verrà effettuato un accesso attraverso il percorso specificato.

1.2 Modalità di accesso

Il secondo parametro nella funzione open() indica la modalità di lavoro con il file. Le modalità di accesso determinano quali operazioni possono essere eseguite sul file (lettura, scrittura, ecc.).

Ecco le principali modalità di accesso:

  • Read — lettura.
  • Write — scrittura.
  • Append — aggiunta.

Esistono diverse varianti di queste modalità:

  • 'r': Apertura del file per la lettura (modalità predefinita). Il file deve esistere.
  • 'w': Apertura del file per la scrittura. Il contenuto del file verrà eliminato. Se il file non esiste, verrà creato.
  • 'a': Apertura del file per aggiunta. I dati verranno aggiunti alla fine del file. Se il file non esiste, verrà creato.
  • 'r+': Apertura del file per lettura e scrittura. Il file deve esistere.
  • 'w+': Apertura del file per lettura e scrittura. Il contenuto del file sarà cancellato. Se il file non esiste, verrà creato.
  • 'a+': Apertura del file per lettura e aggiunta. I dati verranno aggiunti alla fine del file. Se il file non esiste, verrà creato.

Esempio di scrittura su file:

Se vuoi scrivere dati in un file, basta specificare w come modalità di accesso quando apri il file. Attenzione, tutto il vecchio contenuto del file verrà eliminato!


file = open('example.txt', 'w')
file.write("Hello, World!")
file.close()

Esempio di aggiunta a un file:

Se non vuoi eliminare il contenuto del file, ma semplicemente aggiungere qualcosa alla sua fine, allora devi specificare a come modalità di accesso al file.


file = open('example.txt', 'a')
file.write("\nAppended text.")
file.close()

Importante! Se scrivi in un file e non esiste ancora, verrà creato automaticamente. Ma se provi a leggere i dati da un file inesistente, verrà generata un'eccezione.

1.3 Chiusura del file

Ogni volta che apri un file, il sistema operativo verifica i tuoi diritti di accesso al file e lo segna come utilizzato dal tuo programma. Per lavorare con il file viene allocato una risorsa speciale — handler.

Il numero di handler che il tuo programma può ottenere è limitato. Questo significa che puoi mantenere aperti solo alcune centinaia di file contemporaneamente. Sembra un numero elevato, ma se il tuo programma funziona su un server per mesi e ogni giorno legge e scrive nei file, questo limite può essere raggiunto molto rapidamente.

Per questo motivo, dopo aver finito di lavorare con un file, è necessario chiuderlo – invocare il metodo close(). In questo modo, segnali al sistema operativo che non hai più bisogno di quel file, e il suo handler non ti serve più.

Chiusura del file

Dopo aver terminato di lavorare con un file, è necessario chiuderlo per liberare le risorse di sistema. Per farlo si usa il metodo close().


file = open('example.txt', 'r')
# Esecuzione delle operazioni sul file
file.close()

Ogni file che hai aperto per lettura o scrittura deve essere chiuso. Non dimenticare di invocare il metodo close().

Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION