我怎样才能让一个python文件运行另一个?

我怎样才能让一个Python文件运行另一个?

例如,我有两个.py文件 。 我想要一个文件运行,然后运行其他.py文件

有不止几种方法。 我将按照倒序的顺序( ,最好的第一,最差的最后)列出它们:

  1. 对待它像一个模块: import file 。 这很好,因为它安全,快速和可维护。 代码被重用,因为它应该完成。 大多数Python库运行使用多种方法延伸到很多文件。 强烈推荐。 请注意,如果您的文件名为file.py ,则import不应在最后包含.py扩展名。
  2. 臭名昭着的(和不安全的) exec命令: execfile('file.py') 。 不安全,哈克,通常是错误的答案。 尽可能避免。
  3. 产生一个shell进程: os.system('python file.py') 。 绝望时使用。

获取一个python文件来运行另一个:

  1. 把它放在main.py中:

     #!/usr/bin/python import yoursubfile 
  2. 把这个放在yoursubfile.py中

     #!/usr/bin/python print "hello"; 
  3. 运行:

     python main.py 
  4. 它打印:

     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'