由於input
和raw_input()
停止運行程序了,我想用一個子進程來運行這個程序......如何在PYTHON中使用子進程實現流輸入?
while True: print raw_input()
,並得到其輸出。
這是我爲我的閱讀計劃:
import subprocess
process = subprocess.Popen('python subinput.py', stdout=subprocess.PIPE, stderr=subprocess.PIPE)
while True:
output=process.stdout.read(12)
if output=='' and process.poll()!=None:
break
if output!='':
sys.stdout.write(output)
sys.stdout.flush()
當我運行此,子進程退出幾乎一樣快,因爲它開始。我怎樣才能解決這個問題?
什麼是'subinput.py'的照顧? – nhahtdh
也許你只需要使用標準管道? 「$ python subinput.py | python otherscript.py」。您可以使用fileinput模塊處理stdin輸入。但是,如果你已經有了subinput.py,爲什麼不直接導入並作爲普通函數調用? – monkut
@monkut:raw_input()塊,也就是說,它會停止程序,直到它收到輸入 – beary605