2016-07-30 9 views
0

ich den folgenden Code als eine Darstellung eines größeren Wörterbuch verwenden, die in eine CSV-Datei gedruckt werden muss:Python Druck Wörterbuch zu csv gibt leere Datei

import csv 
dict1 = {"hello": 1} 
w = csv.writer(open("C:\output.csv", "w")) 
for key, val in dict1.items(): 
    w.writerow([key, val]) 

Aber die output.csv ist leer. Was vermisse ich?

+2

Sie schließen die Datei nicht, so wird es wahrscheinlich nicht auf die Festplatte geschrieben zu werden. Verwenden Sie alternativ einen Kontextmanager: 'mit open (...) as ...'. – jonrsharpe

+0

Ihr Beispiel funktioniert auf meinem System. Versuchen Sie, die Datei zu schließen, um dieses Verhalten an anderer Stelle sicherzustellen. – pyramids

Antwort

1

Dateien, die Sie öffnen, müssen geschlossen werden. Innerhalb eines with Block, das automatisch passiert zum Beispiel:

import csv 
dict1 = {"hello": "world"} 
with open("C:\output.csv", "w") as fd: 
    w = csv.writer(fd) 
    for key, val in dict1.items(): 
     w.writerow([key, val]) 
+0

w = csvwrite (fd) bewirkt, dass nur der letzte [Schlüssel, Wert] die vorherigen überschreibt. – Zanam

+0

Ich kann das nicht reproduzieren. Für mich funktioniert es nicht nur in diesem Beispiel, sondern auch mit zwei Schlüssel/Wert-Paaren, die beide geschrieben werden. – pyramids

+0

Mein schlechtes. Es funktioniert. – Zanam