1. Creare, Leggere e Scrivere File Testuali
In questa lezione parleremo di file e di come sia possibile leggere e scrivere da e su un file di testo salvato nel nostro computer.
Esistono due modalità di scrittura in Python: 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 aggiungere, il contenuto aggiunto si sommerà a quanto già presente nel file.
Il metodo write()
Iniziamo partendo dalla prima modalità: write(). Assegniamo un stringa a una variabile chiamata contenuto:
contenuto = "Oggi è una bellissima giornata!"
Ciò che dobbiamo fare ora è specificare il file testuale su cui vogliamo scrivere, e per fare questo facciamo utilizziamo la funzione open() per far sapere a Python a che file ci stiamo riferendo, poi possiamo effettuare la scrittura vera e propria con write(), usando il nome della variabile associata ad open(), nel nostro caso file_uno:
file_uno = open("esempio_uno.txt", "w")
file_uno.write(contenuto)
file_uno.close() # ricordate sempre di chiudere i file!
Andando a controllare nel nostro file esempio_uno.txt, ecco che troviamo la frase appena scritta, "Oggi è una bellissima giornata!"
La funzione open()
La funzione open() accetta come parametri il nome del file su cui vogliamo scrivere e la modalità di scrittura, in questo caso w da write. Il nome del file può essere preceduto dal suo percorso all'interno del sistema, ad esempio file_uno = open("C:\\esempio_uno.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.
Il metodo append()
Utilizziamo ora la seconda modalità di scrittura, append(), per aggiungere 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 fino ad ora, l'unica cosa che va a cambiare è il secondo parametro passato a open():
file_uno = open("esempio1.txt", "a")
file_uno.append(nuova_stringa)
file_uno.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:
file_uno = open("esempio1.txt","a")
file_uno.append("\nNuova_riga")
file_uno.close()
Questo è tutto ciò che vi serve sapere per iniziare a scrivere sui file!
Il metodo read()
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)
# output
"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("esempio_uno.txt", "r").readlines()
Grazie a readlines(), ora in var_lettura è presente una lista composta dalle varie righe del file:
var_lettura
# output
["Oggi è una bellissima giornata!python è una bomba","\nNuova_riga"]
Come spostarsi in un'altra cartella con os
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!