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