Python консольная печать текста непрерывно, когда пользователь печатает текст - PullRequest
0 голосов
/ 20 апреля 2020

Linux Python CLI, ввод пользовательских команд, в то время как сама программа часто печатает текст на консоль, очень важна, но ее очень сложно найти. При использовании обычного подхода всегда отображайте грязную консоль, смешанную с входами и выходами .

Output> Print Program Genarated Messages
comOutput> Print Program Genarated Messages
mand1Output> Print Program Genarated Messages
Input < command1
Output> Print Program Genarated Messages
Output> Print Program Genarated Messages
Output> Print Program Genarated Messages
commanOutput> Print Program Genarated Messages
d2
Input < command2
Output> Print Program Genarated Messages
Output> Print Program Genarated Messages
command3
Input < command3
Output> Print Program Genarated Messages
Output> Print Program Genarated Messages
Output> Print Program Genarated Messages
exit
Input < exit

Этот вывод неудобен для пользователей. Я заметил, что некоторые базовые консольные программы используют фиксированную линию для пользовательского ввода, например VI Editor. Как я могу добиться такой функции консоли , как эта в моей программе, чтобы нижняя строка всегда была выделена для ввода пользователя, а вывод программы всегда печатался над ней. Сильфонный код демонстрирует основную c структуру моей программы, одновременные входы и выходы .

import threading
import time

run = True

#print program information
def ProgramGenaratedMessages(): 
    while run:
        print("Output> Print Program Genarated Messages") 
        time.sleep(4) 


timer = threading.Thread(target=ProgramGenaratedMessages) 
timer.start()

#take user inputs
while run:
    input = raw_input()
    print 'Input < ' + input
    if input.lower() == 'exit':
        run = False
...