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

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

例如,我有两个. py文件。我想运行一个文件,然后让它运行另一个. py文件

913733 次浏览

您可以将其中一个文件视为python模块,并让另一个文件导入它(就像导入标准python模块一样)。后者可以引用导入模块中定义的对象(包括类和函数)。模块还可以运行所需的任何初始化代码。看到http://docs.python.org/tutorial/modules.html

有很多方法。我将按照倒优先级的顺序列出它们(即。,最好的在前,最差的在后):

  1. 把它当成一个模块: import file。这很好,因为它安全、快速且可维护。代码按照应该做的方式被重用。大多数Python库使用多个方法运行,这些方法分布在许多文件上。强烈推荐。注意,如果你的文件名为file.py,你的import应该在结尾包含.py扩展名。
  2. 不安全,粗俗,通常是错误的答案。尽可能避免。
    • execfile('file.py')在Python 2
    • exec(open('file.py').read())在Python 3
    • 李< / ul > < / >
    • 生成一个shell进程: os.system('python file.py')。绝望时使用。

让一个python文件运行另一个,使用python 2.7.3和Ubuntu 12.10:

  1. 把这个放到main.py中:

    #!/usr/bin/python
    import yoursubfile
    
  2. Put this in yoursubfile.py

    #!/usr/bin/python
    print("hello")
    
  3. Run it:

    python main.py
    
  4. It prints:

    hello
    

Thus main.py runs yoursubfile.py

There are 8 ways to answer this question, A more canonical answer is here: How to import other Python files?

  • 你可以用下面的代码运行你的.py文件:

import os
os.system('python filename.py')
< p >注意: 将该文件放在与python主文件相同的目录下

你可以使用这个脚本:

def run(runfile):
with open(runfile,"r") as rnf:
exec(rnf.read())

语法:

run("file.py")

它可以在主脚本中被称为abc.py,如下所示:

#!/usr/bin/python
import abc

abc.py可能是这样的:

print'abc'
from subprocess import Popen


Popen('python filename.py')

how-can-i-make-one-python-file-run-another-file

我使用subprocess。调用它就像subprocess一样。Popen

from subprocess import call
call(["python", "your_file.py"])