Ich habe eine Textdatei und ich muss von der zweiten Zeile bis einschließlich 15. Zeile lesen. Ich habe einige Methoden ausprobiert, aber keine Methode hat für mich funktioniert ... Ich würde mich freuen, wenn mir jemand helfen könnte ... vielen Dank!Python lesen Textdatei von der zweiten Zeile bis fünfzehnten
Antwort
Verwendung itertools.islice
:
from itertools import islice
with open('filename') as fin:
for line in islice(fin, 1, 16):
print line
Wenn die Datei nicht sehr groß ist:
with open('/path/to/file') as f:
print f.readlines()[1:15]
Wenn die Datei sehr groß ist, wird alles in den Speicher geladen. –
Jon's answer ist auf jeden Fall eine pythonic und sauber Ansatz.
Alternativ können Sie enumerate()
verwenden:
with open("file", 'r') as f:
print [x for i, x in enumerate(f) if 1 <= i <= 15]
Beachten Sie, dass dieser Wille Schleife über alle Zeilen in einer Datei. Es ist besser, die Schleife nach dem 15. Linie zu brechen, wie folgt aus:
with open("file", 'r') as f:
for i, x in enumerate(f):
if 1 <= i <= 15:
print x
elif i > 15:
break
Ich denke, man kann nur die Zeilen lesen und nehmen Sie die, die Sie
benötigenZum Beispiel:
file = open("a.txt", "r")
data = file.readlines()
jetzt Daten [1] werden zweite Zeile und Daten [14] werden 15 sein.
Sie können sie in eine Variable setzen und das ist es
Öffnen Sie Dateien in einem 'mit'-Block. –
+1 besten Weg, dies zu tun. –
@AshwiniChaudhary Warum ist es der beste Weg? Weil 'islice' Generatorausdrücke verwendet? – thefourtheye
@thefourtheye 'islice' ist eine schnelle und pythische Methode, um ein Stück von einem Iterator zu erhalten. Es macht Schleifen über den Iterator, aber das geschieht intern bei C-Geschwindigkeit. –