我怎样才能让一个python文件运行另一个?
我怎样才能让一个Python文件运行另一个?
例如,我有两个.py文件 。 我想要一个文件运行,然后运行其他.py文件 。
有不止几种方法。 我将按照倒序的顺序( 即 ,最好的第一,最差的最后)列出它们:
- 对待它像一个模块:
import file
。 这很好,因为它安全,快速和可维护。 代码被重用,因为它应该完成。 大多数Python库运行使用多种方法延伸到很多文件。 强烈推荐。 请注意,如果您的文件名为file.py
,则import
不应在最后包含.py
扩展名。 - 臭名昭着的(和不安全的) exec命令:
execfile('file.py')
。 不安全,哈克,通常是错误的答案。 尽可能避免。 - 产生一个shell进程:
os.system('python file.py')
。 绝望时使用。
获取一个python文件来运行另一个:
-
把它放在main.py中:
#!/usr/bin/python import yoursubfile
-
把这个放在yoursubfile.py中
#!/usr/bin/python print "hello";
-
运行:
python main.py
-
它打印:
hello
因此main.py调用了yoursubfile.py
我正在使用Python 2.7.3和Ubuntu 12.10
- 你可以用这个代码简单地运行你的.py文件:
import os os.system('python filename.py')
注意:把文件放在你的主python文件的同一目录下。
你会把其中一个文件当作python模块,并让另一个文件导入(就像导入标准的python模块一样)。 后者可以引用导入模块中定义的对象(包括类和函数)。 该模块也可以运行它需要的任何初始化代码。 请参阅http://docs.python.org/tutorial/modules.html
我使用了subprocess.call它几乎和subprocess.Popen一样
from subprocess import call call(["python", "your_file.py"])
你可以使用这个脚本:
def run(runfile): with open(runfile,"r") as rnf: exec(rnf.read())
句法:
run("file.py")
from subprocess import Popen Popen('python filename.py')
或者我怎么做一个python文件运行另一个文件
它可能被称为aa1.py从主脚本如下,
#!/usr/bin/python import aa1 aa1
aa1.py可能是下面的东西,
print'abc'