0
我在這裏有一個問題:我有一個GUI(wxpython),它有spinctrl,spinctrl的輸出必須發送到c文件,接受命令行參數,所以無論何時我使用子進程執行c文件,因爲它接受來自GUI的值,spinctrl值必須發送給它而不是手動輸入。將變量從python腳本傳遞給C程序(命令行參數)
我的代碼是:
ps = "password"
var1 = self.sc1.Getvalue()
var2 = self.sc2.Getvalue()
subprocess.call(['echo xsxsxs | sudo "./license.exe"', str(ps), str(var1), str(var2)],shell = True)
每當我運行此腳本,它亙古不變的顯示輸出/錯誤:(
如果我刪除回聲xsxsxs |從線4須藤然後執行則顯示錯誤:「你必須是root用戶」,「密碼無效」,「分段錯誤」
我因此未理解你的概念。你能澄清一下嗎? – 2013-02-15 04:49:34
由於您的最後一個參數是'shell = True',您應該自己爲整個命令構建字符串:'cmd ='echo xsxsxs | sudo「./license.exe」{} {} {}'。format(ps,var1,var2)'then'subprocess.call(cmd,shell = True)' – ford 2013-02-15 07:12:51