Shade
Сен. 2, 2008 14:57:55
Какой самый простой способ осуществить ввод с клавиатуры в консольном окне? Или определить статус клавиши (нажата/отпущена)? Только не смейтесь. Я не нашёл.
slivlen
Сен. 2, 2008 15:19:08
raw_input()
Shade
Сен. 2, 2008 16:08:04
Спасибо. Попробовал. Возник вопрос посложнее - raw_input блокирует выполнение всех трэдов, а мне нужно опрашивать клавиатуру параллельно с выполнением других задач…
Ferroman
Сен. 2, 2008 16:43:57
Я не знаю что Вы пишите, но если достаточно сложное терминальное приложение то может поможет
curses.
Shade
Сен. 2, 2008 17:02:42
Да, curses видел, но не хотелось бы закапываться в этот фреймворк.
Пока нашёл такое решение - модуль msvcrt, там есть getch().
Но это работает только под Windows и не работает при запуске из IDLE.
shiza
Сен. 2, 2008 18:48:49
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()
Shade
Сен. 4, 2008 13:42:05
shiza
Shade
Это ты что-то неразобрался:
Вот - raw_input в нитях.
А ты пробовал запускать этот код? Во время ввода вторая нить не работает.
shiza
Сен. 5, 2008 00:35:14
я пробовал - все работает.
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>