1

可能重复:
从另一个 python 脚本运行一个 python 脚本,传入 args

假设我有返回 int 值的 script2.py。

是否可以仅在我的 shell 上运行 script.py 并在 script.py 中根据我传递给 script.py 的参数以某种方式获取 script2.py 返回的 int 值?

4

3 回答 3

3

是的,这是可能的。这就是模块的用途:)。

首先,您必须将您在 script2.py 中使用的方法放入一个函数中。我将使用与我上面的人使用的相同示例(因为这是一个很好的示例:p)。

def myFunction(a, b):
    return a + b

现在在您的 script.py 上,您需要输入:

import script2

在顶部。这仅在两个文件位于同一目录中时才有效。

要使用该功能,您可以键入:

# Adding up two numbers
script2.myFunction(1, 2)

那应该返回3。

于 2013-01-14T04:08:16.650 回答
0

尝试这个:

import subprocess

x = 55

print "running bar.py..."
subprocess.call("python bar.py " + x)
于 2013-01-14T04:10:16.093 回答
0

可能execfile是你所追求的吗?execfile('script2.py')就像您将 的全部内容复制并粘贴script2.py到控制台一样。

例如假设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

以便您可以指定abscript.py.

于 2013-01-14T04:02:08.340 回答