CSVWriter nicht speichern, Daten in Datei moment ich Schreibe es

Python-Neuling und immer ein wenig frustriert mit dem csv-Modul. Bei diesem Tempo, wäre es leichter gewesen, wenn ich schrieb, die Datei-parser mich, aber ich möchte Dinge tun, die Pythonic way ....

Ich geschrieben habe ein kleines python-Skript zu speichern, sollten meine Daten in eine CSV-Datei.

Hier ist ein Ausschnitt von meinem code:

import csv

wrtr = csv.writer(open('myfile.csv','wb'),delimiter=',', quotechar='"')

for row in rows:
    wrtr.writerow([row.field1,row.field2,row.field3])

Die Datei myfile.csv ist erfolgreich erstellt, noch ist es leer - aber hat eine Sperre auf Sie, als seine noch von der Python-Prozess. Es scheint, dass die Daten in die Datei geschrieben wurden, in der Erinnerung, aber es wurde noch nicht auf den Datenträger geleert.

Seit der Python-Prozess eine Sperre auf die Datei, dann nehme ich an, dass ich verantwortlich bin für die Freigabe der Sperre. Hier sind meine Fragen:

  1. Wie bekomme ich python auf dem Datenträger zu leeren
  2. Wie schließe ich die Datei, die geöffnet wurde, die in der csv-Datei.writer () - Methode?
  • """wäre es leichter gewesen, wenn ich schrieb, die Datei-parser selbst""" -- I ' ll Datei, die unter "berühmte Letzte Worte".
  • Die wichtigste intuition ist, dass der Datei-handle ist immer noch geöffnet, nachdem Sie schreiben in die csv-writer. Wenn Sie entfernen die "öffnen" rufen Sie außerhalb und verwalten einer separaten Datei-handle, welches Sie passieren in csv.writer(csvFile,...) dann kann man schließen, dass die Datei-handle, wenn Sie fertig sind, und es wäre bündig. Die Antwort von Tim erklärt einige gute Möglichkeiten, dies zu tun.
  • csvwriter fehlt, ist ein flush-Methode, das ist ein versehen.
  • Ich habe gesehen, es gibt eine file.synch() Methode. Ich Frage mich, wie andere flush Befehl.
InformationsquelleAutor skyeagle | 2010-10-20
Schreibe einen Kommentar