В качестве альтернативы использованию рабочего потока вы можете опросить, доступен ли пользовательский ввод в Unix через select.select()
:
import select
import sys
def raw_input_timeout(prompt=None, timeout=None):
if prompt is not None:
sys.stdout.write(prompt)
sys.stdout.flush()
ready = select.select([sys.stdin], [],[], timeout)[0]
if ready:
# there is something to read
return sys.stdin.readline().rstrip('\n')
prompt = "First value: "
while True:
s = raw_input_timeout(prompt, timeout=0)
if s is not None:
mess = s # change value
print(repr(mess))
prompt = "Type: " # show another prompt
else:
prompt = None # hide prompt
# do other stuff
Каждый раз, когда пользователь нажимает Введите значение mess
изменено.