Python:在Popen中将字符串变量的值作为参数传递

Python:在Popen中将字符串变量的值作为参数传递,python,Python,在Python中,将字符串变量的值传递给Popen函数的正确方法是什么?我尝试了下面的代码 var1 = 'hello' var2 = 'universe' p=Popen('/usr/bin/python /apps/sample.py ' + '"' + str(eval('var1')) + ' ' + '"' + str(eval('var2')), shell=True) 在sample.py中,下面是代码 print sys.argv[1] print '\n' print sys

在Python中,将字符串变量的值传递给Popen函数的正确方法是什么?我尝试了下面的代码

var1 = 'hello'
var2 = 'universe'
p=Popen('/usr/bin/python /apps/sample.py ' + '"' + str(eval('var1')) + ' ' + '"' + str(eval('var2')), shell=True)
在sample.py中,下面是代码

print sys.argv[1]
print '\n'
print sys.argv[2]
但它会打印下面的输出

hello universe
none
因此,它将var1和var2视为一个参数。这是将字符串变量的值作为参数传递的正确方法吗?

这应该可以:

p = Popen('/usr/bin/python /apps/sample.py {} {}'.format(var1, var2), shell=True)
了解

其次,将参数传递给脚本有其特殊之处:

这对我很有用:

test.py:

#!/usr/bin/env python

import sys

print sys.argv[1]
print '\n'
print sys.argv[2]
然后:

然后:


传递格式说明符是一种很好的方法。

str(eval('var1'))
'var1'
相同。是否有方法将控件从被调用的python脚本返回到调用的python脚本?控件终止时将返回到被调用的脚本。
chmod +x test.py
Python 2.7.4 (default, Jul  5 2013, 08:21:57) 
>>> from subprocess import Popen
>>> p = Popen('./test.py {} {}'.format('hello', 'universe'), shell=True)
>>> hello


universe
var1 = 'hello'
var2 = 'universe'
p=Popen("/usr/bin/python /apps/sample.py %s %s"%(str(eval('var1')), str(eval('var2'))), shell=True)