同时运行多个python文件

时间:2018-12-20 09:16:26

标签: python python-3.x python-2.7

如何同时运行多个python文件

我有三个文件pop.py pop1.py pop2.py我想同时运行此文件 该文件正在逐一运行 python代码来运行所有文件

6 个答案:

答案 0 :(得分:2)

您可以使用子流程模块轻松完成此操作。

import subprocess

process1 = subprocess.Popen(["python", "pop.py"]) # Create and launch process pop.py using python interpreter
process2 = subprocess.Popen(["python", "pop1.py"])
process3 = subprocess.Popen(["python", "pop2.py"])

process1.wait() # Wait for process1 to finish (basically wait for script to finish)
process2.wait()
process3.wait()

答案 1 :(得分:1)

是否必须是python解决方案?考虑到上述问题,最简单的方法是在bash中启动所有三个:

python pop.py &
python pop1.py &
python pop2.py &
wait # wait for all three to finish, if needed

虽然此解决方案可同时运行它们,但您应考虑为什么使其并发。您是否正在尝试并行化计算?流程是否进行沟通(例如,生产者/消费者模式)?它们之间是否有依赖关系?在除最简单的情况以外的所有情况下,通常最好将三个python模块捆绑到一个python包中,并添加一些运行程序代码,以导入所有这三个模块,并以线程开头(请参见oren revenge的回答)并处理任何过程通信。

答案 2 :(得分:0)

像这样创建 Shell文件

 python pop.py
 python pop1.py
 python pop2.py

并运行 .sh 文件。 .sh 一次运行多个文件

答案 3 :(得分:0)

我建议阅读Python中的threading。您应该考虑将代码重新排列在一个文件中。

PSEUDOCODE

import threading

class Pop(threading.Thread):
    def run(self):
        # Content from "pop.py"
        # Maybe some some changes are needed


class Pop1(threading.Thread):
    def run(self):
        # Content from "pop1.py"


# ...

pop = Pop()
pop1 = Pop1()
# ...

pop.start()
pop1.start()
# ...

答案 4 :(得分:0)

在每个python文件中使用main()函数,然后将所有文件导入主文件中。然后调用所有主要功能。

SELECT GROUP_CONCAT(Qry ORDER BY TblSchema, TblName SEPARATOR ' UNION ')
FROM
(
  SELECT 
   TABLE_SCHEMA as TblSchema,
   TABLE_NAME as TblName,
   CONCAT('select visitorId from ',TABLE_SCHEMA,'.',TABLE_NAME,'\r\n') as Qry
  FROM INFORMATION_SCHEMA.COLUMNS
  WHERE TABLE_NAME LIKE 'record_201812%' 
    AND COLUMN_NAME = 'visitorId'
) Q;

答案 5 :(得分:0)

import test1,test2
from threading import Thread

Thread(target=test2.main).start()
Thread(target=test1.main).start()

此脚本同时运行test1.py和test2.py。 希望这会有所帮助。