这是两个脚本。 第一个叫做first_py:
#!/usr/bin/env python
import sys
print sys.argv[0] # prints python_script.py
print sys.argv[1] # prints var1
print "first one"
第二个是sec_py:
#!/usr/bin/env python
import sys
print sys.argv[0] # prints sec_script.py
print sys.argv[1] # prints var1
print "second one"
x=5
myVars = {'x':x}
exec(open('first_py').read(), myVars)
如您所见,我正在尝试在调用它时将数字“ 5”作为参数从第二个脚本传递到第一个脚本。没用
如何修复第二个脚本,以便它调用first_py并将值x传递给它,以便将值5打印出来?
答案 0 :(得分:0)
尝试:
#!/usr/bin/env python
import sys
import subprocess, shlex
print sys.argv[0] # prints sec_script.py
print sys.argv[1] # prints var1
print "second one"
x=5
myVars = {'x':x}
print subprocess.check_output(shlex.split('first_py {0}'.format(myVars['x'])))
有很多方法可以做您要做的事情-我们应该特别注意在print_value()
的 import 中将print语句放入一个函数(例如first_py
)中。 em> first_py
,然后使用first_py.print_value(myVars['x'])
。但是,我认为子流程解决方案是最接近您已经草拟的解决方案。
PS-我将脚本另存为first.py
,而不是first_py
。