2011-04-27 81 views
1

有沒有辦法把raw_input,記錄到內存,然後在子進程中調用它?Raw_input子流程

x = raw_input("what is your fav. Color??") 
Subprocess.Popen("C://Windows/system32/cmd.exe") 
os.system('echo your favorite color is "x"') 

我的主要需求是這樣的,我可以把用戶的raw_input併入到我的朋友製作的命令行程序中。

+0

你可以把它作爲一個命令行參數,你朋友的二進制命令到你朋友的節目? – 2011-04-27 11:24:12

+0

@ space_c0wb0y:不。 – user715578 2011-04-27 11:30:30

回答

0

您可以將它作爲像Space_COwbOy提到的命令行參數傳遞,也可以打開管道,如果該子進程在std-input上偵聽,則設置子進程的std-input,以便它重定向到父進程的輸出管道。然後,當您通過父級管道輸入數據時,子進程會從父級輸入數據,就像它從標準輸入讀取數據一樣。

4

好吧,你使用讓您的輸入raw_input

x = raw_input('Input:') 

,然後發送到子過程被調用這樣

from subprocess import Popen, PIPE, STDOUT 

p = Popen(['yourfriendsbinary'], stdout=PIPE, stdin=PIPE, stderr=STDOUT) 

out,err = p.communicate(input=x) 
print(out)