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.

numero max di righe file di testo

M
Matt_Ruggiero (2380 points)
16 39 45
in Es1 by (2.4k points)
closed by
Esiste un metodo o una funzione che mi restituisce il numero delle righe di un file di testo?? Sto googlando ma mon trovo molto:/
687 views
closed with the note: answered

4 Answers

Best answer
m
matteo.chiari (3650 points)
2 17 30
by (3.7k points)
edited by

EDIT: Approfitto dello stato di best answer per sottolineare che il professore ha specificato che questa soluzione va bene per file di piccole dimensioni, altrimenti è consigliabile leggere linea per linea il file tramite un ciclo (minor utilizzo di memoria in questo caso e quindi meno rischio di incorrere in eccezioni per mancanza di memoria).


Ciao,

Dopo aver aperto il file con open() usa il metodo readlines() che ti restituisce una lista di righe del file. Dopodichè usa la funzione len() su quella lista e avrai il numero di righe del file.

francesco.dev (33560 points)
21 51 129
by (33.6k points)
Ottima risposta! :)
andrea.sterbini (207920 points)
749 1267 2373
by (208k points)
Copione :)           .
Jury Francia (7520 points)
23 76 100
by (7.5k points)
edited by
Quando lo leggi con il metodo read() e salvi il contenuto in una variabile puoi usare la funzione len(variabile), però se non sbaglio ti da il numero di caratteri non di righe.

Altrimenti potresti fare un ciclo for dove leggi ad ogni ciclo una linea con readline() e incrementi un contatore. Al termine il contatore conterrà il numero di righe del file.
M
Matt_Ruggiero (2380 points)
16 39 45
by (2.4k points)
Con il numero di caratteri non risolvo molto...
Grazie lo stesso
Jury Francia (7520 points)
23 76 100
by (7.5k points)
Ho editato la risposta vedi se va bene l altro modo
M
Marco.Ceccarelli (840 points)
9 30 38
by (840 points)
Potresti usare il metodo readlines() dei file e salvarlo in una variabile, readlines() legge tutte le linee del file,  in seguito usando len(variabile) con variabile che corrisponde a quella assegnata a readlines ottieni il numero di linee.
andrea.sterbini (207920 points)
749 1267 2373
by (208k points)
Se il file è piccolo va bene readlines, altrimenti fai in ciclo e leggi una linea per volta, userai meno memoria.

Sia read che readlines leggono tutto il file in memoria, se il file è grande potresti avere una eccezione per mancanza di memoria.