2016-12-22 7 views
2

Ich versuche, eine Reihe von N Zeilen gleichzeitig in einer Textdatei durchlaufen. Wie durchlaufe ich zum Beispiel die gesamte Datei, sagen wir, dass sie 100 Zeilen hat und 10 gleichzeitig druckt. So weit bin ich gekommen.Python Schleife durch Anzahl der Zeilen gleichzeitig

N=10 
f=open("data.txt") 
for i in range(N): 
    line=f.next().strip() 
    print line 
f.close() 
+1

könnten Sie ein Eingabe-/Ausgabebeispiel für das liefern, was Sie erreichen möchten? – lmiguelvargasf

+2

Was ist der Unterschied bei "10 gleichzeitig drucken" und nur jede Zeile drucken? –

+1

Related: http://stackoverflow.com/questions/312443/how-do-you-split-a-list-into-evenly-sized-chunks –

Antwort

5

Sie könnten die Datei als Iterator behandeln und nehmen nur zusätzliche Elemente aus es auf jeder Iteration:

with open('data.txt') as f: 
    for line in f: 
     lines = [line] + [next(f) for _ in xrange(9)] # have 1 already, so need 9 
     # process lines 

Wenn Ihre Datei Länge von Ihrem Chunkgröße nicht teilbar ist, können Sie next(f, None) anstelle und filtern Sie die None s vor der Verarbeitung lines.

+0

Danke, das funktioniert, wie ziehe ich die Newline aus \ n – BKCapri

+1

Dies wird einen "StopIteration" -Fehler auslösen (zumindest in Python 3), wenn die Zeilenanzahl nicht durch den Schritt teilbar ist ... – brianpck

+0

Hmm Im Arbeiten mit Python 2.7 – BKCapri

Verwandte Themen