2017-02-14 36 views
0

我正在讀取一個列表中的unix命令行程序從一個文件列表,pList。 所有的程序都在我的PATH中。 然後我將其中一個條目分配給一個變量:prog。python sh模塊不接受變量作爲命令

然後我想使用非標準模塊SH

sh.prog('arguments') 

然而執行該程序,SH解釋名PROG字面上的,而不是包含字符串的變量。它尋找程序prog,它不存在。有沒有解決這個問題的方法?使用子進程調用函數會有同樣的問題嗎? 我該如何解決這個問題?

+0

是的!它的工作原理與您所說的完全相同。把它作爲正式答案,我會將其標記爲已接受。 – Glubbdrubb

+0

找到了更好的解決方案(見下文)。 – glibdud

回答

1

sh模塊有類似於這種情況的Command類。

sh.Command(prog)('arguments') 
+0

謝謝! 我在文檔中看到了,但我誤解了它。 – Glubbdrubb