"Salto" fra linee di un testo

S
Shad87 (740 points)
5 9 11
asked Dec 16, 2019 in Programmare in Python by Shad87 (740 points)
recategorized Jan 6, 2020 by andrea.sterbini
Esiste un modo per spostarsi di x linee in un file di testo senza necessariamente dover fare un ciclo che "cicla"  x volte?

Per esempio, se io voglio iniziare a leggere un file di testo dalla 10 linea, posso evitare di dover lanciare un for con range(10) in qualche modo?

Grazie.
394 views

2 Answers

E
Edward (25950 points)
2 4 172
answered Dec 16, 2019 by Edward (25,950 points)
Se non vuoi usare il for (che comunque è un buon metodo e non è molto costoso), un'alternativa potrebbe essere quella di leggere tutto il file con f.readlines() (che ti crea una lista con dentro le righe del file), ed usare le slices.
Nel tuo esempio, se vuoi leggere dalla decima riga ti basterebbe fare testo = f.readlines()[10:].  Questo però ti carica tutto il file in memoria (dalla decima riga in poi).
S
Shad87 (740 points)
5 9 11
commented Dec 16, 2019 by Shad87 (740 points)
Grazie 1000!
a
a.pietroluongo (11250 points)
15 38 131
answered Dec 16, 2019 by a.pietroluongo (11,250 points)
edited Dec 16, 2019 by a.pietroluongo
Con il metodo readlines() :

with open(ftesto) as f:
    a = f.readlines()[10:]

Oppure

with open(ftesto) as f:
        a = f.readline() # leggi una linea alla volta
        c = 0
        while c <10:
            a = f.readline()
            c += 1
        a = f.read() # leggi il file dalla linea 10
S
Shad87 (740 points)
5 9 11
commented Dec 16, 2019 by Shad87 (740 points)
Grazie ;) !!!