2013-04-02 85 views
0

作爲參數傳遞的可執行文件我有一個python腳本從命令行獲取2個參數,一個可執行文件和一個文件。在做一些計算之後,我需要通過stdin將此計算的結果傳遞給可執行文件。Python發送數據到終端

1)這是可能的嗎? 2)如果是這樣,我怎麼能在Python中做到這一點

回答

2

首先,你不應該使用os.system這是一個非常危險和壞習慣。

至於你的問題,用子可以做到以下幾點:

from subprocess import Popen, PIPE, STDOUT 

#do some stuff 
data = do_some_computation_from_file 

#prepare your executable using subprocess.Popen 
exe = Popen(['your_executable'], stdout=PIPE, stdin=PIPE, stderr=STDOUT) 

#pass in the computed data to the executable and grap the result 
result = exe.communicate(input=data)[0] 
+0

我假設以類似的方式,我可以得到可執行的結果早在計劃? –

+0

在這個例子中,你實際上得到的結果'結果' – Chakib

+0

哦,是的,對不起。還在看着Popen。 –