Forum >> Programmazione Python >> Scripting >> Python e lettura / stampa di un file di testo

Pagina: 1

Buongiorno a tutti,
faccio una domanda da completo novizio, ho iniziato da poco a pasticciare con il linguaggio e sottopongo un problema banale (python versione 3.5.2 a 32bit):
dato un file di testo aa.txt che contiene le seguenti linee

riga1aaaaaa
riga2bbbbbb
riga3ccccc
riga4dddddd
riga5eeeee

se lo leggo con il seguente codice
>f = open("C:\\lav_py\\aa.txt", 'r');
>i = 0;
>for linea in f:
>>>>i = i + 1;
>>>>bf1 = f.readline()
>>>>conta = len(bf1);
>>>>print (i, conta, bf1)
>f.close();

mi stampa le linee:

1 12 riga2bbbbbb

2 12 riga4dddddd

3 0

Vi e' ovviamente un errore ma non capisco perche' non funziona ??

Grazie a chiunque vorra' rispondere
Ciao caro, prima di tutto cosa sono quei ";", hai confuso la meravigliosa sintassi con altri linguaggi? ;)

Venendo a noi il tuo esercizio lo puoi risolvere in molti modi diversi, cerco di restare il più "fedele" possibile a quanto hai scritto:
>>> i = 0
>>> for linea in open("<nome file>"):
...    i += 1
...    print(i, len(linea), linea)
1 11 riga1aaaaa
2 12 riga2bbbbbb
3 11 riga3ccccc
4 12 riga4dddddd
5 12 riga5eeeee 
Se lo vuoi usare f.readlines() è molto semplice anche in questo caso, devi apportare poche variazioni:
>>> i = 0
>>> f = open("<nome_file>", "r")
>>> for linea in f.readlines():
...    i += 1
...    print(i, len(linea), linea)
1 11 riga1aaaaa
2 12 riga2bbbbbb
3 11 riga3ccccc
4 12 riga4dddddd
5 12 riga5eeeee
Anche se esistono anche metodi un po' più "pythonici", spero ti sia chiaro il procedimento.

Cya


Pagina: 1



Esegui il login per scrivere una risposta.