2013-01-13 16 views
8

Sto provando a scrivere un'applicazione console in Python3.Applicazione console Python - uscita sopra la riga di input

Il problema è Vorrei tutti i messaggi di uscita EG: stampare ("Messaggio di stato") sopra la riga di inserimento in basso.

Status message 1 
Status message 2 
Status message 3 
Console:> I want to type here while the output messages displayed 

al momento sembra più questo

Console:> want to type here while the outStatus message 1 
put messages displayed 

Esiste un modo per fare questo senza usare maledizioni?

risposta

2

Prova questa:

print chr(27)+'[2AOutput' 

Spero che questo è ciò che si sta chiedendo.

Spiacente quanto sopra è per Python 2.7. Non sono sicuro se la versione di Python 3

print(chr(27)+'[2AOutput') 

funzionerà o meno.

Rif: http://en.wikipedia.org/wiki/ANSI_escape_code

+0

Questo eliminerebbe la funzionalità di avere un arretrato di uscita. Se desideri mantenere questa funzionalità, puoi fare qualcosa di simile a questo: print ('\ e [A \ e [kOutput \ nStato corrente del prompt', end = '') '\ e [A' sposta il cursore sull'ultima stringa stampata (dovrebbe essere la 'Console:> ...'). '\ e [k' cancella la linea e poi la sostituisce con il nuovo output e ristampa la' Console:> ... 'e si prepara a ricevere più valori dall'input. È possibile che '\ e [A' debba essere saltato. – Hobblin