我有一个脚本通过subprocess.Popen模块调用另一个python脚本。但因为我有存储在变量(一个或多个)将变量传递给子进程.Popen
servers[server]['address']
servers[server]['port']
servers[server]['pass']
论点我无法执行的命令
p = subprocess.Popen(["python mytool.py -a ", servers[server]['address'], "-x", servers[server]['port'], "-p", servers[server]['pass'], "some additional command"], shell=True, stdout=subprocess.PIPE)
解决方法:
我得到了它的@wilberforce &梳理工作@ ciphor的答案,但受了一点修改
command = "python mytool.py -a %s -x %s -p %s some additional command" % (servers[server]['address'], servers[server]['port'], servers[server]['pass'])
p = subprocess.Popen(command , shell=True, stdout=subprocess.PIPE)
如果我在双引号中添加了多个变量,它会停止工作,它可能需要最大“2”变量,并且我添加更多的变量。
感谢大家回答!
使用这些变量来构建一个字符串即命令,或将它们作为参数列表传递。 – beroe