如何让一个Python文件运行另一个?

429 投票
8 回答
1042664 浏览
提问于 2025-04-17 05:27

我怎么让一个Python文件去运行另一个Python文件呢?

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

8 个回答

49

我使用了subprocess.call,这个和subprocess.Popen差不多。

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

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

  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了。

这个问题有8种回答方式,比较标准的答案可以在这里找到:如何导入其他Python文件?

655

有几种方法可以做到这一点。我会按照不太推荐的顺序列出它们(也就是说,最好的在前,最差的在后):

  1. 把它当作一个模块来用: import file。这样做很好,因为它安全、快速,而且容易维护。代码可以像应该的那样被重复使用。大多数Python库都是通过多种方法在很多文件中运行的。这种方法强烈推荐。注意,如果你的文件叫 file.py,那么在 import 的时候 不要加上 .py 后缀。
  2. 臭名昭著(而且不安全)的 exec 命令:不安全、黑科技,通常是错误的选择。尽量避免使用。
    • 在Python 2中用 execfile('file.py')
    • 在Python 3中用 exec(open('file.py').read())
  3. 启动一个shell进程: os.system('python file.py')。在非常需要的时候使用。

撰写回答