Ich habe ein Skript geschrieben, das eine Webseite analysiert und Daten von Interesse in einer CSV-Datei speichert. Bevor ich die Daten öffne und sie in einem zweiten Skript verwende, überprüfe ich, ob die Datei mit Daten existiert und wenn nicht, führe ich zuerst das Parser-Skript aus. Das seltsame Verhalten des zweiten Skripts ist, dass es erkennen kann, dass es keine Datei gibt, dann wird die Datei erstellt, aber wenn es zum ersten Mal gelesen wird, ist es leer (Teil der else-Anweisung). Ich habe versucht, etwas Verzögerung mit der Methode time.sleep() zu schaffen, aber es funktioniert nicht. Der Explorer zeigt deutlich, dass die Datei nicht leer ist, aber beim ersten Durchlauf erkennt das Skript die Datei als leer. Bei den folgenden Läufen sieht das Skript die Datei klar und kann sie korrekt erkennen.Datei nach positiver Ausnahme erstellen FileNotFoundError
Vielleicht haben Sie eine Erklärung für dieses Verhalten.
def open_file():
# TARGET_DIR and URL are global variables.
all_lines = []
try:
current_file = codecs.open(TARGET_DIR, 'r', 'utf-8')
except FileNotFoundError:
procesed_data = parse_site(URL)
save_parsed(procesed_data)
compare_parsed()
open_file()
else:
time.sleep(10)
data = csv.reader(current_file, delimiter=';')
for row in data:
all_lines.append(row)
current_file.close()
return all_lines
Danke, wenn ich es in der oben gezeigten Weise mache, funktioniert es. Es scheint, dass die Exception die Rekursion nicht verarbeiten kann. Die Frage ist warum, aber ich habe kein Python-Wissen benötigt, um das zu beantworten. – frankot