2012-09-03 9 views
11

Il mio file legge l'input dell'utente (come userid, password ..). E imposta i dati sul file x.yml.Python YAML: controllo del formato di output

Il contenuto del file di x.yml è

{user: id} 

Ma invece io voglio il contenuto di essere il più

user: id 

Come posso raggiungere questo obiettivo?

+0

Benvenuti in Stack Overflow! Mi dispiace, ma trovo molto difficile capire cosa stai chiedendo qui. Sarebbe di grande aiuto se includessi del codice per mostrare ciò che hai provato, per noi sarà molto più facile aiutarti. Forse potresti anche dare un'occhiata a http://whathaveyoutried.com per un grande articolo su come fare delle buone domande? –

+3

Inoltre, hai provato a usare una [libreria YAML Python] (http://pyyaml.org/) per aiutarti a scrivere YAML valido? –

+0

importazione YAML user = raw_input ("Inserire user id: ") pwd = raw_input (" Inserire la password: ") flusso = open (file1," w") yaml.dump ({user: pwd}, torrente) È questo il modo giusto per inserire dati nel file yml? L'esecuzione di questo file per la seconda volta è l'aggiunta di un altro file in formato yml. Potete aiutarmi in questo senso. – user1643521

risposta

24

Come menzionato nei commenti, la libreria YAML python è lo strumento giusto per il lavoro. Per ottenere l'output desiderato, è necessario passare la parola chiave argomento default_flow_style=False a yaml.dump:

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

Il file "output_file.yml" conterrà:

user : 123 

Ulteriori informazioni su come personalizzare yaml.dump sono disponibile a http://pyyaml.org/wiki/PyYAMLDocumentation.