2009-09-10, 21:25
  #1
Medlem
försöker skapa en while-loop som läser in informationen från en textfil i grupper om tre rader där varje rad hamnar som en post i en lista.

alltså om jag har en fil

Rad 1: Hej
Rad 2: på
Rad 3: dig
Rad 4: och
Rad 5: dig
Rad 6 :med

så vill jag först läsa in rad 1-3 till en lista med en post för varje rad, sen rad 4-6 till en ny lista.

började med det här:

while line = f.readline():

varpå jag läser och behandlar två rader till innan loopen får börja om igen, men det blir syntax error. Hur löser jag det här på ett bra sätt?

är noob på det här som ni kan se
Citera
2009-09-10, 21:49
  #2
Medlem
Stacheldrahts avatar
While ... readline fungerar i en del språk, men Python är inte ett av dem. Öppna bara en fil och iterera över den:

Kod:
file = open("min_fil.txt")

for line in file:
   print line,

Förstod inte exakt vad du ville göra om jag ska vara ärlig, men detta löser i alla fall ditt syntax error
Citera
2009-09-10, 22:17
  #3
Medlem
gjorde som du skrev med lista.append(line), men då hamnar ju alla linjer i listan, jag vill bara lägga in tre i taget.
Citera
2009-09-11, 08:28
  #4
Medlem
DOGKAiSERs avatar
Citat:
Ursprungligen postat av Unbildoed
gjorde som du skrev med lista.append(line), men då hamnar ju alla linjer i listan, jag vill bara lägga in tre i taget.

Lättast är nog att göra en lista av listor:
Kod:
f=open("text.txt","r")
L=[];temp=[];c=0

while 1:
 
r=f.readline();c+=1
 
if r!=''temp.append(r)
 else:
   if(
temp): L.append(temp)
   break;
 if(
c==3):
   
c=0;L.append(temp);temp=[]

print 

Citera
2009-09-11, 17:35
  #5
Medlem
War Skeletons avatar
Om jag inte misstar mig finns det en funktion som heter readlines som läser in hela filen i en array.
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in