Форум сайта python.su
Какой самый простой способ осуществить ввод с клавиатуры в консольном окне? Или определить статус клавиши (нажата/отпущена)? Только не смейтесь. Я не нашёл.
Офлайн
raw_input()
Офлайн
Спасибо. Попробовал. Возник вопрос посложнее - raw_input блокирует выполнение всех трэдов, а мне нужно опрашивать клавиатуру параллельно с выполнением других задач…
Офлайн
Я не знаю что Вы пишите, но если достаточно сложное терминальное приложение то может поможет curses.
Офлайн
Да, curses видел, но не хотелось бы закапываться в этот фреймворк.
Пока нашёл такое решение - модуль msvcrt, там есть getch().
Но это работает только под Windows и не работает при запуске из IDLE.
Офлайн
Shade
Это ты что-то неразобрался:
Вот - raw_input в нитях.
import threading
import time
def proc():
print 'Yo'
a = raw_input()
print 'input: ' , a
def proc2():
while 1:
time.sleep(1)
print time.time()
p1 = threading.Thread(target=proc)
p2 = threading.Thread(target=proc2)
p1.start()
p2.start()
p1.join()
p2.join()
Отредактировано (Сен. 2, 2008 18:53:26)
Офлайн
shizaА ты пробовал запускать этот код? Во время ввода вторая нить не работает.
Shade
Это ты что-то неразобрался:
Вот - raw_input в нитях.
Офлайн
я пробовал - все работает.
WindowsXP
Python 2.5.2
консоль CMD
C:\temp>op.py
Yo
1220564077.67
1220564078.67
1220564079.67
1220564080.67
1220564081.67
1220564082.67
1220564083.67
1220564084.67
tets
input: tets
1220564085.67
1220564086.67
1220564087.67
1220564088.67
1220564089.67
^C
C:\temp>
Офлайн