Video Corso Base di Python 3

19: Come Creare, Leggere e Scrivere un File Testuale

Benvenuti a tutti a questa lezione numero 19, in questo episodio parleremo di Files, ovvero di come sia possibile leggere e scrivere da e su un file di testo salvato nel nostro Computer.

Dovete sapere che esistono due modalità di scrittura in Python e queste sono write e append.

Utilizzando write, ogni volta che andiamo ad aggiungere del contenuto, tutto ció che era precedentemente salvato all'interno del file andrà perso, mentre utilizzando append, che significa proprio aggiungere, il contenuto aggiunto si sommerà a quanto già presente nel file.

Iniziamo partendo dalla prima modalità. Anzitutto ci serve qualcosa da scrivere, quindi:

contenuto = "Oggi è una bellissima giornata!"

Ció che dobbiamo fare ora è specificare il file testuale su cui vogliamo scrivere, e per fare questo facciamo:

file1 = open("esempio1.txt","w")

open() è chiaramente una funzione, e i parametri che le passiamo sono il nome del file su cui vogliamo scrivere e la modalità di scrittura, in questo caso "w" da write appunto.

Il nome del file puó essere preceduto dal suo percorso all'interno del sistema, ad esempio file1 = open("C:\\esempio1.txt","w")

Nella definizione del percorso utilizziamo due slash e non uno, in quanto come ricorderete dalle lezioni precedenti questo è il carattere escape, e quindi per essere interpretato correttamente ha bisogno di essere a sua volta giustificato.

Visto che noi abbiamo specificato solamente il nome, Python andrà a cercalo nella sua cartella di lavoro di default. Se il file non esiste, come in questo caso, open() lo creerà per noi.

Ora che Python sa a che file ci stiamo riferendo possiamo effettuare la scrittura vera e propria, usando il nome della variabile associata ad open(), nel nostro caso file1:

file1.write(contenuto)
file1.close() # ricordatevi sempre di chiudere i vostri file

Andando a controllare nel nostro file esempio1.txt, ecco che troviamo la frase appena scritta, "Oggi è una bellissima giornata!"


Utilizziamo ora la seconda modalità di scrittura, append, per aggiugnere del testo a quello già presente. Creiamo del nuovo materiale da aggiungere:

nuova_stringa = "python è una bomba"

La procedura è la stessa rispetto a quella mostrata fin'ora, l'unica cosa che va a cambiare è il secondo parametro passato a open():

file1 = open("esempio1.txt", "a")
file1.write(nuova_stringa)
file1.close()

Andando a ricontrollare nel nostro file di testo, ecco che ora troviamo la nostra nuova aggiunta:

"Oggi è una bellissima giornata!python è una bomba"

Come vedete Python non va a capo automaticamente, dovrete specificarlo voi mediante un carattere newline:

file1 = open("esempio1.txt","a")
file1.write("\nNuova_riga")
file1.close()

Questo è tutto ció che vi serve sapere per iniziare a scrivere sui file, passiamo ora alla terza e ultima parte di questa lezione, la lettura da file; ad open() verrà passato stavolta il parametro "r", da read:

var_lettura = open("esempio1.txt","r").read()
print(var_lettura)
"Oggi è una bellissima giornata!python è una bomba
Nuova_riga"

Volendo, invece di leggere tutto il contenuto del file come un'unica stringa, potete ottenere una lettura per righe apportando una piccola modifica a quanto abbiamo scritto in precedenza:

var_lettura = open("esempio1.txt","r").readlines()
Grazie a readlines(), ora in var_lettura è presente una lista composta dalle varie righe del file:
var_lettura
["Oggi è una bellissima giornata!python è una bomba","\nNuova_riga"]

Prima di chiudere vi do delle info bonus, iniziamo importando il modulo della Standard Library dedicato al sistema operativo, il modulo os:

import os

Tra le tante funzionalità presenti in questo modulo potete verificare la cartella su cui Python sta lavorando mediante:

os.getcwd()

e cambiarla con:

os.chdir(/percorso/file)

Questo vi faciliterà in maniera considerevole il lavoro... specialmente se state lavorando con più di un file per volta!


Ricapitolando:

  • Per leggere o scrivere su un file dobbiamo prima aprirlo mediante al funzione open()
  • Ad open() passiamo due parametri: il nome e percorso del file + la modalità di accesso ("w", "a", "r")
  • Il contenuto di un file aperto in modalità "w" verrà eliminato
  • Dopo aver aggiunto del contenuto, i file vanno sempre chiusi mediante close()

Menu della Serie