Ich versuche, eine Aufgabe auszuführen, wo das Programm ein Verzeichnis durchläuft, jede Datei nacheinander öffnet und eine bestimmte Zeile vor allem anderen prüft. Wenn die Zeile ein bestimmtes Kriterium erfüllt (dh sie stimmt nicht mit dieser Zeile in einer anderen Datei im Verzeichnis überein), wird die Datei geschlossen und das Programm wird in die nächste Datei verschoben.Python - Schließen einer Datei, wenn sie eine Bedingung erfüllt
aps = []
import os
for filename in os.listdir("C:\..."):
f = open(filename,"r")
(f.readline())
(f.readline())
ap = (f.readline())
ap = ap.rstrip("\n")
aps.append(ap)
freqs = {}
for ap in aps:
freqs[ap] = freqs.get(ap, 0) + 1
for k, v in freqs.items():
if v == 2:
f.close()
else:
Für den ‚else:‘ ich ursprünglich versucht ‚f.seek (0)‘, bekamen aber den Fehler von Python nicht in der Lage zu sein mit einer geschlossenen Datei zu arbeiten. Ich habe dann 'f = open (Dateiname, "r") erneut versucht, aber das macht etwas Seltsames, wenn ich versuche, die erste Zeile mit dieser Methode zu drucken, sendet es auf eine verrückte Schleife und druckt die Zeile mehrmals.
Ist dies der beste Weg, um diese Aufgabe zu erledigen? Und wenn nicht, wie könnte ich es zur Arbeit bringen?
Vielen Dank.
Was ist der Zweck des 'else'-Zweigs unten nach dem' f.close'?Müssen Sie noch aus der Datei lesen? – sal
Sie sollten nach dem Schließen der Datei eine 'Pause' hinzufügen, damit die Schleife nicht fortgesetzt wird. –