Я пытаюсь создать интерактивную консоль, используя curses lib.
, похожую на эту:
import curses
if __name__ == '__main__':
stdscr = curses.initscr()
stdscr.nodelay(False)
curses.echo()
curses.nonl()
while True:
stdscr.addstr('#')
stdscr.refresh()
command = stdscr.getstr()
if not command:
continue
if command == b'xys':
stdscr.addstr('Execute xys block and print result')
elif command == b'qwe':
stdscr.addstr('Execute qwe block and print result')
# ...
Но она возвращает это:
#xys
Execute xys block and print result#
#qwe
Execute qwe block and print result#
#
#
#
(после строки Execute qwe block and print result#
я нажал клавишу enter
)
Функция stdscr.getstr()
ожидает ввода только половину времени.Другая половина command = ''
без какого-либо ввода.Вот почему вы видите двойной знак #
или знак #
в конце каждого вывода.
Ожидаемый результат должен быть:
#xys
Execute xys block and print result
#qwe
Execute qwe block and print result
#
Любая рекомендация?