2012-09-03 17 views
11

Meine Datei liest Benutzereingaben (wie Benutzer-ID, Passwort ..). Und setzt die Daten auf x.yml-Datei.Python YAML: Ausgabeformat steuern

Der Inhalt x.yml Datei ist

{user: id} 

Aber stattdessen möchte ich den Inhalt als

sein
user: id 

Wie kann ich das erreichen?

+0

Willkommen bei Stack Overflow! Es tut mir leid, aber ich finde es sehr schwer herauszufinden, was Sie hier fragen. Es würde helfen, wenn Sie Code einfügen, um zu zeigen, was Sie ausprobiert haben, es wird uns viel einfacher machen, Ihnen zu helfen. Vielleicht könntest du auch einen Blick auf http://whathaveyoutried.com für einen tollen Artikel werfen, wie man gute Fragen stellt? –

+3

Haben Sie auch versucht, eine [python YAML-Bibliothek] (http://pyyaml.org/) zu verwenden, um Ihnen beim Schreiben eines gültigen YAML zu helfen? –

+0

Import yaml user = raw_input ("Geben Sie Benutzer-ID: ") PWD = raw_input (" Passwort eingeben: ") stream = open (file1," w") yaml.dump ({user: PWD}, Bach) Ist dies der richtige Weg, um Daten in die YML-Datei einzufügen? Wenn Sie diese Datei ein zweites Mal ausführen, fügen Sie der XML-Datei ein weiteres Diktat hinzu. Können Sie in dieser Hinsicht helfen. – user1643521

Antwort

24

Wie in den Kommentaren erwähnt, ist die Python YAML-Bibliothek das richtige Werkzeug für den Job. Um die Ausgabe zu erhalten Sie wollen, müssen Sie das Schlüsselwort Argument default_flow_style=False zu yaml.dump weitergeben müssen:

>>> x = { "user" : 123 } 
>>> output_stream = open("output_file.yml","w") 
>>> yaml.dump(x,output_stream,default_flow_style=False) 
>>> output_stream.close() 

Die Datei „output_file.yml“ enthält:

user : 123 

Weitere Informationen darüber, wie anpassen yaml.dump sind verfügbar unter http://pyyaml.org/wiki/PyYAMLDocumentation.