2013-01-13 12 views
8

Próbuję napisać aplikację konsoli w Pythonie3.Aplikacja konsolowa Python - wyjście powyżej linii wejściowej

Problemem jest to, chciałbym wszystkie komunikaty wyjściowe np print („komunikat o stanie”), aby znajdować się powyżej linii wejściowej na dole.

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

w tej chwili wygląda bardziej jak ten

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

Czy mimo to zrobić bez używania przekleństw?

Odpowiedz

2

Spróbuj tego:

print chr(27)+'[2AOutput' 

nadzieję, że to co prosicie.

Niestety powyższe jest Pythona 2.7. Nie jestem pewien, czy będzie działał, czy nie będzie działał język Python 3.

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

+0

To usunąć funkcjonalność mający zaległości wyjściu. Jeśli chcesz zachować tę funkcjonalność, możesz zrobić coś takiego: print ('\ e [A \ e [kOutput \ nstanowy stan zachęty', koniec = '') '\ e [A' przesuwa kursor do ostatniego drukowanego ciągu (powinien to być 'Console:> ...'). '\ e [k' czyści wiersz, a następnie zamienia go na nowe wyjście, a następnie przedrukuje' Konsolę:> ... 'i przygotowuje się do otrzymania więcej wartości z wejścia. Możliwe, że '\ e [A' powinno zostać pominięte. – Hobblin

Powiązane problemy