可能重复:
Run a python script from another python script, passing in args
假设我有一个返回int值的script2.py。
是否可以在我的shell上运行script.py并在script.py中以某种方式获取script2.py根据传递给script.py的参数返回的int值?
答案 0 :(得分:3)
是的,这是可能的。这就是模块用于:)。
首先,您必须将您在script2.py中使用的方法放入函数中。我将使用与我上面的人使用相同的例子(因为这是一个很好的例子:p)。
def myFunction(a, b):
return a + b
现在在你的script.py上,你要放:
import script2
在顶部。这仅在两个文件位于同一目录中时才有效。
要使用此功能,请输入:
# Adding up two numbers
script2.myFunction(1, 2)
那应该返回3.
答案 1 :(得分:0)
execfile
能成为你追求的目标吗? execfile('script2.py')
就像您将script2.py
的全部内容复制并粘贴到控制台一样。
e.g。假设script2.py
有:
def myFunction(a, b):
return a + b
然后在script.py
我能做到:
# reads in the function myFunction from script2.py
execfile('script2.py')
myFunction(1, 2)
如果您想使用script2.py
传入的参数执行script.py
,那么我建议将script2.py
的内容包含在函数中。也就是说,如果您的script2.py
是:
a = 1
b = 2
result = a + b
我建议你把它转换成:
def myFunction(a, b):
return a + b
这样您就可以从a
指定b
和script.py
。
答案 2 :(得分:0)
试试这个:
import subprocess
x = 55
print "running bar.py..."
subprocess.call("python bar.py " + x)