2012-04-19 14 views
6

Sto usando raw_input() per memorizzare un messaggio all'interno di una variabile. Quindi non posso premere invio per un ritorno a capo/nuova riga per iniziare un nuovo paragrafo. In questo momento, se premo Invio, procederò alla prossima parte del mio programma.Come includere una nuova riga nella funzione raw_input() di python?

Ho già provato qualcosa di simile:

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

Non ha funzionato, e ho anche provato racchiudendolo tra virgolette singole e doppie, che pure non ha lavorato.

Capisco che ci sono altri modi di fare questo, come l'utilizzo di wxpython o tkinter, ma voglio tenerlo rigorosamente console. È possibile?

risposta

7

È possibile utilizzare il modulo sys? Questo farà il trucco se vuoi. Basta premere Ctrl-D per terminarlo.

import sys 
message = sys.stdin.readlines() 

In caso contrario, questo risponde alla tua domanda: Python raw_input ignore newline

+0

sys.stdin.readlines() funziona come un fascino, ma non riesco a ottenere ctrl-d per lavorare non so perché? – coffeeNcode

+0

ho capito, devo invece usare ctrl-c, ma ora ho un errore di interruzione della tastiera se ho provato a stampare il messaggio. – coffeeNcode

+1

Finalmente l'ho capito! Non posso usare ctrl-c, questo è ciò che rende l'errore di interruzione della tastiera, e non posso usare ctrl-d perché sono su Windows, devo usare ctrl-z o f6 e poi verrà visualizzato nella console in questo modo^Z e premi Invio. dopo di che devo convertire il messaggio di una lista in una stringa, che riesco a fare così >>> roughmessage = sys.stdin.readlines() >>> message = '' .join (roughmessage) – coffeeNcode

Problemi correlati