PDA

Visualizza la versione completa : Python: Readline() oppure ciclo for


marco345
29-12-2013, 18:46
salve, volevo chiedere un aiuto: io ho un file da cui devo ricavare le righe. Il problema è che le righe non sono disposte in colonna una dopo l'altra, ma sono attaccate una dopo l'altra. Siccome io devo compiere delle operazioni e poi cumulare i risultati ho avuto dei problemi. SECONDO VOI BISOGNA USARE IL CICLO FOR O IL READLINE?(OVVERO SCRIVO FOR LINE IN ....)?????

Scara95
29-12-2013, 18:48
In che senso non sono in colonna ma una attaccata all'altra?
Potevi benissimo continuare nel thread di prima.

marco345
29-12-2013, 19:19
In che senso non sono in colonna ma una attaccata all'altra?
Potevi benissimo continuare nel thread di prima.
sì esatto, ne ho aperto un'altra perchè è un altro esercizio....mi disp....

Scara95
29-12-2013, 19:24
sì esatto, ne ho aperto un'altra perchè è un altro esercizio....mi disp....
Ma spiega il problema: che senso ha le righe non sono in colonna...

marco345
29-12-2013, 19:26
Ma spiega il problema: che senso ha le righe non sono in colonna...
nel senso che non trovo:
linea1
linea2
linea3
ma:
linea1linea2linea3linea4linea5.................... .................................................. .................................................. ..............................linea44linea45...... ..........................................etc....

Scara95
29-12-2013, 19:29
Mh, lo stai aprendo con Notepad?

marco345
29-12-2013, 19:34
Mh, lo stai aprendo con Notepad?
a me apre il file con il blocco note

Scara95
29-12-2013, 19:41
a me apre il file con il blocco note
A mio parere l'unico problema di quel file è che il "blocco note" lo visualizza male perché i terminatori di riga non è la sequenza '\r\n' ma un semplice '\n'. Questo perché a mio parere il tuo professore usa un sistema unix-like, ma potrei sbagliarmi.
Ma se ti esprimi meglio forse riesco a capire meglio...

Comunque per la domanda iniziale: puoi iterare come vuoi sulle righe di un file. Ricordati sempre che esistono più metodi equivalenti di fare una cosa.

marco345
29-12-2013, 20:14
A mio parere l'unico problema di quel file è che il "blocco note" lo visualizza male perché i terminatori di riga non è la sequenza '\r\n' ma un semplice '\n'. Questo perché a mio parere il tuo professore usa un sistema unix-like, ma potrei sbagliarmi.
Ma se ti esprimi meglio forse riesco a capire meglio...

Comunque per la domanda iniziale: puoi iterare come vuoi sulle righe di un file. Ricordati sempre che esistono più metodi equivalenti di fare una cosa.

diciamo che il problema si presenta così(ovviamente ho cambiato il file rispetto a prima):



f=open("C:\Users\MARCO\Desktop\Nuova cartella (10)\\elenco.txt","r")
line=f.readline()
diz={}
while line!="":
line=line.strip("\n")
line=line.split(",")
while line[1]!="AGRIGENTO":
diz[line[1]]==line[0]
print diz
line=f.readline()
f.close()
il problema è il penultimo line=f.readline che non so se è indentato bene...

Scara95
30-12-2013, 12:39
Si è ben indentato, ma qui
while line[1]!="AGRIGENTO": penso tu volessi usare un if, anche perché se no quel loop è infinito...

Loading