我可以在另一个python文件中运行python文件吗?

Can I run a python file within another python file?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Run a python script from another python script, passing in args

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

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


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

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

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

现在,在script.py中,您需要:

1
import script2

在顶部。只有当两个文件都在同一个目录中时,这才有效。

要使用该函数,请键入:

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

这应该返回3。


试试这个:

1
2
3
4
5
6
import subprocess

x = 55

print"running bar.py..."
subprocess.call("python bar.py" + x)


你想要的是什么?execfile('script2.py')的工作方式就好像您复制并粘贴了script2.py的全部内容到控制台中一样。

例如,假设script2.py具有:

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

然后在script.py我可以做到:

1
2
3
 # reads in the function myFunction from script2.py
 execfile('script2.py')
 myFunction(1, 2)

如果要使用从script.py传入的参数执行script2.py,那么我建议将script2.py的内容封装在函数中。也就是说,如果您的script2.py是:

1
2
3
a = 1
b = 2
result = a + b

我建议你把它转换成:

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

这样您就可以从script.py中指定ab