Lettura di dati da un file
Durante la lettura di un file di testo, il flusso di byte entra nell'input del programma in sequenza uno dopo l'altro, quindi il file fornisce un accesso sequenziale ai dati. Cioè, se dobbiamo leggere il decimo valore dal file, dobbiamo prima leggere il precedente 9.
La lettura di una singola riga di un file consente l'esecuzione del metodo
readline()
. Questo metodo viene chiamato su una variabile di file.
Fin = open("input.txt")
s = Fin.readline()
Alla stringa letta possono essere applicati vari metodi, simili a quelli utilizzati durante la lettura da tastiera (split()
, map()
, ecc.). Ad esempio, se ci sono due numeri separati da uno spazio in una riga di un file, puoi contarli come segue:
Fin = open("input.txt")
s = Fin.readline().split() # linea divisa su spazi s = ["2007", "2021"]
a, b = map(int, s) # applica il metodo int() a tutti gli elementi della lista s,
# ovvero convertire la stringa di caratteri in un numero
# a, b = int(s[0], s[1]) # questo è lo stesso della riga sopra
# a, b = [int(x) for x in s] # uguale a un generatore
Il metodo read()
legge l'intero contenuto del file e restituisce una stringa che può contenere i caratteri '\n
'. Se un parametro intero viene passato al metodo read()
, non verrà letto più del numero specificato di caratteri. Ad esempio, puoi leggere un file byte per byte utilizzando il metodo read(1)
.
.
All'apertura di un file, il puntatore che determina la posizione corrente nel file viene posto all'inizio del file e, una volta letto, viene spostato nella posizione successiva ai dati letti. Durante la scrittura, il puntatore viene spostato nella successiva posizione libera.