Ich lese eine externe TXT-Datei und zeige alle Zeilen an, die Feld 6 als Y haben. Ich muss dann diese Zeilen zählen. Wenn ich jedoch die Summenfunktion hinzufüge, wird nur eine der Zeilen gedruckt. Wenn ich diese Summenfunktion entferne, werden alle Zeilen wie erwartet angezeigt. Ich nehme an, dass es etwas mit der for-Schleife zu tun hat, aber ich kann nicht herausfinden, wie man alle Zeilen zur Anzeige bringt und meine Summe behält. Kann mir jemand helfen, herauszufinden, wo das schief geht?Loop zeigt beim Hinzufügen einer Summenfunktion nicht alle Zeilen an
noLines = 0
fileOpen = open ("file.txt","r")
print ("Name: " + "\tDate: " + "\tAge: " + "\tColour: " + "\tPet")
for line in fileOpen:
line = line[:-1]
field = line.split(',')
if field[6] == "Y":
print()
print (field[0] +"\t\t" + field[1] + "\t" + field[2] + "\t\t" + field[3] + "\t\t" + field[4])
noLines = sum(1 for line in fileOpen)
print()
print(noLines)
Sind Sie sicher, dass es keine Leerzeichen vor oder nach dem „Y“? Ich schlage vor, sie nur für den Fall zu entfernen: 'if Feld [6] .strip() ==" Y ": ...' Sie setzen auch die Zeilenzahl in jeder Schleifeniteration zurück. Dies ist wahrscheinlich _not_ was Sie wollen. – DyZ
@Sarah: Sie sollten die Frage nicht so ändern, wie sie bestehende Antworten ungültig macht. Bitte bearbeiten Sie den Code nicht, da diese Fragen auch als Referenz für zukünftige Benutzer (nicht nur Sie) dienen. Bitte kommentieren Sie meine Antwort auf das Problem und ich werde versuchen, Ihnen zu helfen, das Problem zu lösen (nach bestem Wissen) –
Sie sollten den Code bearbeiten, um Sie sauber und klar zu stellen. Aber den Kontext der Frage zu ändern, ist die Ausnutzung der Bearbeitungsfunktion von SO –