Come leggere e scrivere file con python
Nel linguaggio python è possibile aprire, creare o aggiungere record in un file di testo.
Come creare un nuovo file
Per creare un file con Python devo prima aprire il file in scrittura con l'istruzione open utilizzando il parametro "w" ( write ).
Dove f è il nome logico del file nel programma mentre il "nomefile" è il nome del file fisico sul computer.
f = open("nomefile","w")
f.write("primo record \n")
f.close()
L'istruzione write scrive i singoli record del file. Il simbolo \n indica la fine del record e il ritorno a capo.
Una volta scritti tutti i record, chiudo il file logico con l'istruzione close.
In questo modo ho salvato un file sul PC.
Come aggiungere record a un file esistente
Per inserire dei record in un file già esistente, senza cancellare quelli presenti al suo interno, devo aprire il file con l'istruzione open tramite il parametro "a" (append).
f = open("nomefile","a")
f.write("secondo record \n")
f.write("terzo record \n")
f.close()
Il parametro "a" significa append, aggiunge i nuovi record al file senza cancellare quelli già esistenti.
A questo punto il file fisico sul computer è composto da tre record ( righe ).
primo record
secondo record
terzo record
Come aprire e leggere un file
Per aprire un file in lettura utilizzo l'istruzione open con il parametro "r" ( read ).
Per leggere il contenuto del file posso scegliere tra due metodi:
- Il metodo readline legge un singolo record alla volta
- Il metodo read legge tutto il contenuto del file in una sola volta.
Esempio 1 ( readline )
Il seguente codice apre il file in lettura con il metodo readline.
Poi legge e stampa i primi tre record.
f = open("nomefile","r")
print(f.readline())
print(f.readline())
print(f.readline())
f.close()
Esempio 2 ( read )
Il seguente codice apre il file in lettura.
Poi legge tutti i record con il metodo read.
f = open("nomefile","r")
print(f.read())
f.close()
L'output del programma è il seguente:
primo record
secondo record
terzo record
Esempio 3 ( readlines )
Questo codice apre il file in lettura.
Poi legge tutti i record e li restituisce in un array.
f = open("nomefile","r")
print(f.readlines())
f.close()
Ogni elemento dell'array è un record del file.
['primo record \n', 'secondo record \n', 'terzo record \n']
In questo modo ho scritto e letto un file di testo con il linguaggio python.
Esempio 3
Per leggere tutti i record del file dall'inizio alla fine
f = open("nomefile","r")
while True:
line = f.readline()
if not line:
break
print(line)
f.close()
Questo script legge e stampa tutti i record del file.
E così via.