从一个python脚本到另一个传递简单参数的简单调用

时间:2018-10-29 19:13:11

标签: python linux parameters

这是两个脚本。 第一个叫做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打印出来?

1 个答案:

答案 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