2012-04-19 13 views
6

Estoy usando raw_input() para almacenar un mensaje dentro de una variable. Por lo tanto, no puedo presionar enter para un retorno de carro/nueva línea para comenzar un nuevo párrafo. En este momento, si presiono entrar, pasará a la siguiente parte de mi programa.¿Cómo incluir una nueva línea en la función python raw_input()?

ya lo hemos probado algo como esto:

>>> message = raw_input("Message: ") 
Message: Hello Sir, \n It's great that.. 
>>> message 
"Hello Sir, \\n It's great that.." 
>>> 

No se trabajó, y también me trataron encerrándolo entre comillas simples y dobles, que tampoco funcionaron.

entiendo que hay otras maneras de hacer esto, como el uso de wxpython o tkinter, pero quiero seguir estrictamente consola. es posible?

Respuesta

7

¿Se puede usar el módulo sys? Esto hará el truco si quieres. Simplemente presiona Ctrl-D para finalizar.

import sys 
message = sys.stdin.readlines() 

De lo contrario, esto responde a tu pregunta: Python raw_input ignore newline

+0

sys.stdin.readlines() funciona como un encanto, pero me parece que no puede conseguir Ctrl-D para trabajar, no sé por qué? – coffeeNcode

+0

me di cuenta, tengo que usar ctrl-c, pero ahora recibo un error de interrupción del teclado si intento imprimir el mensaje. – coffeeNcode

+1

¡Lo descubrí finalmente! No puedo usar ctrl-c, eso es lo que hace que el teclado interrumpa el error, y no puedo usar ctrl-d porque estoy en Windows, tengo que usar ctrl-z o f6 y luego se mostrará en la consola como esto^Z y presione enter. después de eso tengo que convertir el mensaje de una lista en una cadena, que logro hacer así >>> roughmessage = sys.stdin.readlines() >>> message = '' .join (roughmessage) – coffeeNcode

Cuestiones relacionadas