将变量从python脚本传递给C程序(命令行参数)

时间:2013-02-15 04:40:32

标签: python c wxpython subprocess wxwidgets

我在这里有一个问题:我有一个GUI(wxpython),它有spinctrl,spinctrl的输出必须发送到c文件,它接受命令行参数,所以每当我使用subprocess执行c文件时接受来自GUI的值,必须将spinctrl值发送给它而不是手动输入。

我的代码是:

      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)

每当我运行此脚本时,它都不会显示输出/错误:(

如果我删除echo xsxsxs | sudo从第4行然后执行然后显示错误:“你必须是root用户”,“无效密码”,“分段错误”。

1 个答案:

答案 0 :(得分:2)

每当您使用shell=Truesubprocess.Popen(或其中一个便利包装器)时,您应该完全按照在shell中键入的方式传递字符串,而不是list

来自docs

  

如果shell为True,建议将args作为字符串而不是序列传递。

相关问题