Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

Notice Board

Per partecipare al corso di Fondamenti di programmazione 2023-24 loggatevi e attivatelo nella vostra pagina dei corsi preferiti. A quel punto il corso appare nel menù personale cliccando sul proprio avatar. Per i materiali degli anni precedenti seguite lo stesso metodo.

To join the Programming/Lab 2023-24 course, log-on and select it on the my courses page. It will appear on the personal menu of your avatar. For earlier years use the same method.

"Salto" fra linee di un testo

S
Shad87 (740 points)
7 9 11
in Programmare in Python by (740 points)
recategorized by
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.
609 views

2 Answers

E
Edward (25950 points)
4 4 172
by (26.0k 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)
7 9 11
by (740 points)
Grazie 1000!
a
a.pietroluongo (11250 points)
20 39 131
by (11.3k points)
edited by
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)
7 9 11
by (740 points)
Grazie ;) !!!