Lets sagen, dass ich eine Textdatei, die wie folgt aussieht:Python: Mit readine() in „für Zeile in der Datei:“ Loop
a
b
start_flag
c
d
e
end_flag
f
g
ich für Zeile über diese Datenleitung möchte laufen, aber wenn ich begegnen einem ‚start_flag‘, möchte ich wiederholen, bis ich eine ‚end_flag‘ erreichen und zählen die Anzahl der Linien dazwischen:
newline = ''
for line in f:
count = 0
if 'start_flag' in line:
while 'end_flag' not in newline:
count += 1
newline = f.readline()
print(str(count))
Was das erwartete Verhalten dieses Codes ist? Wird es iterieren wie:
a
b
start_flag
c
d
e
end_flag
f
g
Oder:
a
b
start_flag
c
d
e
end_flag
c
d
e
end_flag
f
g
Warum fragen Sie uns, wie es funktioniert, anstatt es nur zu versuchen und herauszufinden? Soweit ich mich erinnere, wird das Mischen von "readline" mit Iteration in einer Datei nicht gut unterstützt, aber die Verwendung von "next (f)" (oder eine andere for-Schleife) würde wahrscheinlich wie Ihr erstes Beispiel funktionieren, da Dateien ihre eigenen Iteratoren sind. – Blckknght
Ich werde es testen und eine Antwort posten, wenn niemand anderes will. Danke auch für den Vorschlag. – Umibozu
mein Ergebnis zeigte, dass es: a, b, Flagge, fag, c, d, e, f, g .... so habe ich keine Ihrer Alternativen .... – D3181