Wie schreiben Sie ein Wörterbuch in einer vorhandenen Datei?
Sagen wir, ich habe ein Wörterbuch und ich will es schreiben in eine vorhandene Datei. Wie kann ich das tun, ohne alles zu verlieren, die möglicherweise bereits vorhanden sind, in der Datei? Was ich dachte, tun Sie das folgende:
def write_report(r, filename):
input_filename=open(filename, "a")
input_filename.close()
for (k,v) in r.items():
input_filename.write(k,v)
return filename
was ich will, um sicherzustellen, ist, dass der Dateiname korrekt, enthält das Wörterbuch.
InformationsquelleAutor der Frage user300 | 2013-11-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie
json
- Modul zum Lesen und schreiben von Datenstrukturen im JSON-format (in anderen Worten serialisieren zu JSON und Deserialisieren von JSON).Zum Beispiel:
InformationsquelleAutor der Antwort Eugene Naydenov
Gurke kann eine andere Wahl:
Aber nur die Daten, die serialisiert Gurke gelesen werden könnte mit Gurke.laden. Also, wenn Sie wollen, um alle Daten Lesen aus der Datei, Sie sollte Gurke.dump alle Daten in die Datei.
InformationsquelleAutor der Antwort flyer
Wenn Sie möchten, fügen Sie einen text-Darstellung der einzelnen Schlüssel-Wert-paar in das dictionary in eine text-Datei sehen Sie in der folgenden Ansatz:
Den oben genannten ausgedrückt werden kann, mehr sauber mit der with-Anweisung.
InformationsquelleAutor der Antwort mediocrity
Was Sie bereits getan habe, mit
open(filename, "a")
verwendet append-Modus - das ist fast alles, was Sie brauchen. Im append-Modus, werden Sie nie überschreiben, was bereits in der Datei. Das problem ist, dass es keine Garantie für Sie sind der einzige, der schreiben - und wenn einer schreibt vielleicht teilweise, Sie können kommen verzerrt, wenn es gibt immer mehrere Autoren an derselben Datei arbeiten. Diese Art von Problem kann vermieden werden, mithilfe Datei sperren.Den code, den Sie geschrieben hat ein paar mehr Probleme, aber wie das schließen der Datei vor dem schreiben auf Sie, und die Tatsache, dass schreiben nur akzeptiert einen string-argument. Sie wollen zum serialisieren von Daten in handliche Stücke, für die Python standard Modul ist Essiggurke (und Regal speichert Dinge in Datenbank-Dateien) und JSON ist ein weithin unterstütztes format.
InformationsquelleAutor der Antwort Yann Vernier