Форум сайта python.su
Нужно, чтобы паралельно с raw_input() работал цикл while. Т.е чтобы в консоли отображалась новая информация, пока пользователь вводит данные.
Нашел multiprocessing and thread, но применить на практике не получается. Вроде бы на это дело некий ограничитель стоит.
Что-то вроде такого:
x=0 while x==0: print 'spam' x=raw_inpit()
Офлайн
Не надо так делать. Это будет нестандартное поведение консоли которое никому не понравится. Если есть такая потребность, сделайте GUI приложение.
Офлайн
Так бы и сделал, если бы помнил PyQt, а не инструменты, которые я на нем написал и потерял…
Ну а в принципе, как оно реализуется? В том же Qt помнится такая проблема была.
Тем более, что я уже делов натворил, и хочется закончить работу.
Офлайн
GuljacaНет проблемы. Вы пишите многопоточное или асинхронное приложение и получаете одновременную работу нескольких устройств ввода вывода. Но консоль это одно устройство совмещающее ввод и вывод, вы вводите команду и получаете результат.
В том же Qt помнится такая проблема была.
Офлайн
Ну по идее можно обновлять информацию в консоли с незаметной для глаза частотой, и сохранять результаты, введенные в коммандную строку, до подтверждения комманды, что позволит использовать и один интерфейс… Но возможно это извращение, да и не знаю, как на таком уровне управлять консолью.
Пожалуй, я тогда еще почитаю на эту тему и отпишусь еще раз.
P.s. Помнится я так делал, когда надо было расчитывать действия ИИ вне зависимости от действий оператора и его реакцию на ввод команды, но это было слишком давно.
Отредактировано Guljaca (Март 10, 2017 19:34:19)
Офлайн
1. Есть системно зависимый kbhit который можно использовать для переключения режимов.
2 есть curses gui для консоли.
3 можно стартовать 2 консоли, одна для вывода данных, другая для ввода и вывода echo
Но все это фуфло, вашим требованиям удовлетворяет gui программа. Другими способами это сделать сложнее. Давно не писали это отговорка.
Офлайн
Благодарю за ответ.
Офлайн