В Python я хотел бы написать терминальную программу, используя вместе cmd и curses, т.е. используйте cmd для приема и декодирования полных входных строк, но позиционируйте вывод с проклятиями.
Соединяя вместе примеры curses и cmd:
import curses
import cmd
class HelloWorld(cmd.Cmd):
"""Simple command processor example."""
def do_greet(self, line):
screen.clear()
screen.addstr(1,1,"hello "+line)
screen.addstr(0,1,">")
screen.refresh()
def do_q(self, line):
curses.endwin()
return True
if __name__ == '__main__':
screen = curses.initscr()
HelloWorld().cmdloop()
Я обнаружил, что ничего не вижу, когда печатаю. curses предположительно ожидает обновления, прежде чем отображать что-либо на экране. Я мог бы переключиться на использование getch (), но тогда я потерял бы значение cmd.
Есть ли способ заставить их работать вместе?