2012-09-03 14 views
11

Mi archivo lee la entrada del usuario (como ID de usuario, contraseña ...). Y establece los datos en el archivo x.yml.Python YAML: formato de salida de control

El contenido del archivo x.yml es

{user: id} 

Pero en lugar de eso desea que el contenido sea lo más

user: id 

¿Cómo puedo lograr esto?

+0

¡Bienvenido a Stack Overflow! Lo siento, pero me resulta muy difícil averiguar lo que estás preguntando aquí. Ayudaría si incluyese algún código para mostrar lo que has intentado, será mucho más fácil para nosotros ayudarte. ¿Quizás también podría echar un vistazo a http://whathaveyoutried.com para obtener un excelente artículo sobre cómo hacer buenas preguntas? –

+3

Además, ¿ha intentado usar una [biblioteca Python YAML] (http://pyyaml.org/) para ayudarlo a escribir YAML válido? –

+0

importación yaml user = raw_input ("Enter ID de usuario: ") pwd = raw_input (" Enter password: ") corriente = abierto (archivo1," w") yaml.dump ({user: pwd}, corriente) ¿Es esta la manera correcta de insertar datos en el archivo yml? Ejecutar este archivo por segunda vez es agregar otro archivo dict a yml. Puede ayudar en este sentido. – user1643521

Respuesta

24

Como se mencionó en los comentarios, la biblioteca python YAML es la herramienta adecuada para el trabajo. Para obtener el resultado que desea, necesita pasar la palabra clave argumento 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() 

El archivo "output_file.yml" contendrá:

user : 123 

Para más información sobre cómo personalizar yaml.dump son disponible en http://pyyaml.org/wiki/PyYAMLDocumentation.