如何使一个python文件运行另一个?

How can I make one python file run another?

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

如何创建一个python文件来运行另一个?

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


有很多种方法。我将按倒排优先顺序列出它们(即,最佳优先,最差最后):

  • 把它当作一个模块来对待:import file。这很好,因为它是安全、快速和可维护的。代码会像应该做的那样被重用。大多数Python库都使用多个方法运行,这些方法覆盖了许多文件。强烈推荐。请注意,如果您的文件名为file.py,则您的import不应在末尾包含.py扩展名。
  • 臭名昭著的(和不安全的)执行命令:execfile('file.py')。没有安全感,很刻薄,通常回答错误。尽可能避免。
  • 生成一个壳过程:os.system('python file.py')。绝望时使用。

  • 使用python 2.7.3和ubuntu 12.10,获取一个python文件来运行另一个:

  • 把这个放在main.py中:

    1
    2
    #!/usr/bin/python
    import yoursubfile
  • 把这个放进yoursubfile.py

    1
    2
    #!/usr/bin/python
    print("hello")
  • 运行它:

    1
    python main.py
  • 它打印:

    1
    hello
  • 因此,main.py运行yoursubfile.py

    有8种方法可以回答这个问题,这里有一个更规范的答案:如何导入其他python文件?


    • 您可以使用以下代码运行.py文件:
    1
    2
    import os
    os.system('python filename.py')

    注:将文件放在主python文件的同一目录中。


    我使用了subprocess.call,它几乎与subprocess.popen相同。

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


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


    1
    2
    3
    from subprocess import Popen

    Popen('python filename.py')

    或者我怎么做一个python-file-run-another-file


    您可以使用此脚本:

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

    Syntax:

    1
    run("file.py")


    它可以从下面的主脚本中称为aa1.py,

    1
    2
    3
    #!/usr/bin/python
    import aa1
    aa1

    aa1.py可能在下面,

    1
    print'abc'