2013-07-27 5 views
1

Я хочу создать скрипт python, который печатает сообщения из одного потока, все еще ожидая, что вы будете вводить другой. Это возможно? И если да, то как?Python входная и выходная резьба

система: Windows 7

Язык: Python 2.7

Я попытался это (модифицированный из другого вопроса):

import threading 
import time 

def message_loop(): 
    while True: 
     time.sleep(1) 
     print "Hello World" 

thread = threading.Thread(target = message_loop) 
thread.start() 

while True: 
    input = raw_input("Prompt> ") 

Но что случается: программа ждет, пока я не готовый ввод до выхода Hello World.

+0

Добавление к вопросу о кофе, что вы прочитали? Вы посмотрели документацию на Python? –

+0

Я прочитал документацию, и я пробовал код, сделанный другими, но что происходит, это код для меня, чтобы нажать enter, а затем он выводит – lewisjb

ответ

2

Это абсолютно возможно. Если у вас есть функция, которая печатает вывод (назовем его print_output), вы можете запустить его в другом потоке с помощью threading модуля:

>>> import threading 
>>> my_thread = threading.Thread(target=print_output) 
>>> my_thread.start() 

Теперь вы должны начать получать свой выход. Затем вы можете запустить бит ввода в основном потоке. Вы также можете запустить его в новом потоке, но есть некоторые преимущества для ввода ввода в основной поток.

+0

Это просто говорит мне, как потоковаться, он не делает то, что я хочу. хотя – lewisjb

+0

@Pyro: Я не могу воспроизвести вашу проблему. Он отлично работает для меня, хотя я на 2,6, а не 2,7, и я не в Windows. – icktoofay

Смежные вопросы