Zum drucken der nächsten Zeile in python
Ich versuche zu drucken, die nächsten 3 Zeilen nach einem match
z.B. Eingabe :
Testing
Result
test1 : 12345
test2 : 23453
test3 : 2345454
so, ich bin mit der Suche "Ergebnis" string in Datei und drucken Sie dann die 3 Zeilen von ihm:
Ausgang :-
test1 : 12345
test2 : 23453
test3 : 2345454
mein code ist :
with open(filename, 'r+') as f:
for line in f:
print line
if "Benchmark Results" in f:
print f
print next(f)
nur, dass Sie mir die Ausgabe :
testing
wie bekomme ich meine gewünschte Ausgabe, Hilfe bitte
- Die Zeile, falls "Benchmark Ergebnisse" in f nicht erscheint, erfassen Sie Ihre gewünschten Bedingungen. Ich denke, Sie wollen etwas, das mehr wie wenn "Ergebnis" in Zeile statt.
- Der test von "Benchmark-Ergebnissen" ist falsch, denn es wird getestet gegen "f" und nicht mit "line".
- während der Formatierung Ihrer Eingabe-und Ausgabe, ich habe entfernt die leeren Zeilen. Bitte re-add Sie, wenn Sie wirklich Teil Ihrer input/output
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zunächst müssen Sie prüfen, dass der text in der
line
(nicht in der fileobjf
), und nutzen Sieislice
zu den nächsten 3 Zeilen ausf
und drucken Sie Sie, zB:Die Schleife wird weiterhin von der Linie, nachdem die drei gedruckt. Wenn Sie das nicht wollen - setzen Sie ein
break
innerhalb derif
.islice
und ich wahrscheinlich sollte. Nun habe ich gesehen, das ich auf jeden Fall gefällt es besser als meine Antwort weiter unten 🙂Sie prüfen (und drucken) "f" anstelle von "Zeile". Vorsichtig sein, dass. 'f' ist der Datei-pointer, line, hat Ihre Daten.
.readline()
halten die\n
Charakter und dieprint
wird anfügen eines Zeilenumbruchs, die den Ausgang haben "Leerzeilen" zwischen den Zeilen (man beachte den post markiert ist 3.x so drucken sollte eine Funktion sein hier).f.readlines()
verbrauchen wird die ganze Datei nach, die Anrufe zuf.readline()
wird einfach ein leerer string zurückgegeben.Es ist das warten auf den ersten "Ergebnis" in die Datei und druckt den rest der Eingabe:
Wenn Sie möchten, nach Ende der ersten 3 druckt, können Sie fügen Sie die variable
cnt = 0
und ändern Sie diesen Teil des Codes (zum Beispiel so):Ich würde vorschlagen, die Datei öffnen und spliting seine Inhalte in den Zeilen, Zuweisung des Ergebnisses an eine variable, so können Sie die Daten Bearbeiten, die mehr bequem:
Dann können Sie einfach überprüfen, welche Zeile enthält den string "Ergebnis", und drucken Sie die folgenden drei Zeilen: