У меня есть приложение на основе Python, которое может принимать несколько команд в простом цикле чтения-eval-print. Я использую raw_input('> ')
для ввода. В системах на базе Unix я также import readline
, чтобы все выглядело немного лучше. Все это прекрасно работает.
Проблема в том, что происходят асинхронные события, и я хотел бы печатать выходные данные, как только они произойдут. К сожалению, это заставляет вещи выглядеть уродливыми. Строка " > " не появляется снова после выхода, и если пользователь находится на полпути, набрав что-то, он прерывает их текст пополам. Вероятно, он должен перерисовать текст пользователя в процессе после печати.
Кажется, что это должна быть проблема. Каков правильный способ сделать это?
Также обратите внимание, что некоторые из моих пользователей основаны на Windows.
ТИА
Изменить: принятый ответ работает на платформах Unixy (когда доступен модуль readline), но если кто-то знает, как сделать эту работу под Windows, это будет очень полезно!