2014-02-21 57 views
0

上下文:在系統中有一個映射,我想調用bin文件。他們是不可調用的直接,雖然,但通過shell腳本里面做各種魔法,然後調用與相應斌:"$ENV_VAR/path/to/the/bin" "[email protected]"(該軟件是不自由的,這可能就是使用這種結構)Python:調用一個調用bin的shell腳本。帶參數

問題 :在Python中調用它。我試圖用:

from subprocess import call call(["nameOfBin", "-input somefile"])

但是,這給了錯誤ERROR: nameOfBin - Illegal option: input somefile。這意味着'輸入'前面的' - '符號一路上消失了(在前面放置更多的' - '符號並沒有幫助)。

可能的解決方案

1:在某種程度上保留了「 - 」符號,以便在年底倉,其實需要「 - 輸入」作爲一個選項,而不是「輸入」。

2:以一種骯髒的方式修復魔法(我可能會管理),並且有一種方法可以在由$ ENV_VAR(環境變量)定義的位置調用bin。

我搜索了兩種方法,但在我之前沒有人遇到過這樣的問題(或者我沒有看到它:對不起,如果是這種情況)。

回答

1

列表中的每個項目應該是單個參數。將"-input somefile"替換爲"-input", "somefile"

from subprocess import call 

rc = call(["nameOfBin", "-input", "somefile"]) 
相關問題