Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 2, 2008 14:57:55

Shade
От:
Зарегистрирован: 2008-09-02
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Как осуществить ввод с клавиатуры?

Какой самый простой способ осуществить ввод с клавиатуры в консольном окне? Или определить статус клавиши (нажата/отпущена)? Только не смейтесь. Я не нашёл.



Офлайн

#2 Сен. 2, 2008 15:19:08

slivlen
От:
Зарегистрирован: 2006-07-06
Сообщения: 764
Репутация: +  0  -
Профиль   Отправить e-mail  

Как осуществить ввод с клавиатуры?

raw_input()



Офлайн

#3 Сен. 2, 2008 16:08:04

Shade
От:
Зарегистрирован: 2008-09-02
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Как осуществить ввод с клавиатуры?

Спасибо. Попробовал. Возник вопрос посложнее - raw_input блокирует выполнение всех трэдов, а мне нужно опрашивать клавиатуру параллельно с выполнением других задач…



Офлайн

#4 Сен. 2, 2008 16:43:57

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Как осуществить ввод с клавиатуры?

Я не знаю что Вы пишите, но если достаточно сложное терминальное приложение то может поможет curses.

Офлайн

#5 Сен. 2, 2008 17:02:42

Shade
От:
Зарегистрирован: 2008-09-02
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Как осуществить ввод с клавиатуры?

Да, curses видел, но не хотелось бы закапываться в этот фреймворк.

Пока нашёл такое решение - модуль msvcrt, там есть getch().
Но это работает только под Windows и не работает при запуске из IDLE.



Офлайн

#6 Сен. 2, 2008 18:48:49

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

Как осуществить ввод с клавиатуры?

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)

Офлайн

#7 Сен. 4, 2008 13:42:05

Shade
От:
Зарегистрирован: 2008-09-02
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Как осуществить ввод с клавиатуры?

shiza
Shade
Это ты что-то неразобрался:
Вот - raw_input в нитях.
А ты пробовал запускать этот код? Во время ввода вторая нить не работает.



Офлайн

#8 Сен. 5, 2008 00:35:14

shiza
От:
Зарегистрирован: 2007-07-03
Сообщения: 1073
Репутация: +  0  -
Профиль   Отправить e-mail  

Как осуществить ввод с клавиатуры?

я пробовал - все работает.
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>



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version