2013-07-27 111 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

我已閱讀文檔,並且我嘗試了其他人完成的代碼,但是會發生什麼情況,代碼是什麼讓我按輸入,然後輸出 – 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