同时运行多个Python文件

问题描述 投票:0回答:7

如何同时运行Python的多个文件

我有三个文件 pop.py pop1.py pop2.py 我想同时运行这个文件 这些文件正在被一一运行 python代码运行所有文件

python python-3.x python-2.7
7个回答
7
投票

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

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
投票

它必须是Python解决方案吗?对于上述问题,最简单的方法可能是在 bash 中启动所有三个:

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

虽然此解决方案同时运行它们,但您应该考虑为什么您希望它们同时运行。您是否正在尝试并行化您的计算?进程是否进行通信(例如生产者/消费者模式)?它们之间有依赖关系吗?在除了最简单的情况之外的所有情况下,通常可以通过将所有三个 python 模块捆绑在一起到一个 python 包中并添加一些运行程序代码来更好地服务,该运行程序代码导入所有三个模块,将每个模块作为一个线程启动(请参阅 oren 复仇的答案),并处理任何内部-进程通信。


1
投票

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

伪代码

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()
# ...


1
投票
import test1,test2
from threading import Thread

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

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


0
投票

在每个 python 文件中创建 main() 函数,然后导入主文件中的所有文件。然后调用所有主要函数。

from . import pop
from . import pop1
# and so on

# and now call all main functions
pop.main()
pop1.main()
# and so on

0
投票

像这样创建一个Shell文件

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

并运行 .sh 文件。 .sh 逐个运行多个文件


0
投票

请参阅下面的其他 3 个方法,效果更好,它们也运行 .py,而不仅仅是打开!

方法一:https://gist.github.com/me-suzy/746193a040ae510429c8bcdda73325ab

方法二:https://gist.github.com/me-suzy/b9301c9acd9d5867185782bd38ae3161

方法3:https://gist.github.com/me-suzy/7e21b0ae011fbb09a97e89fc6d727dc8

最简单的方法:

运行bebe-ro.bat(更改您电脑的用户)

----贝贝-ro.bat----

@echo off
echo Pornirea scripturilor

start /b c:\Users\YOUR-USER\AppData\Local\Programs\Python\Python312\python.exe "e:\File-1.py"
start /b c:\Users\YOUR-USER\AppData\Local\Programs\Python\Python312\python.exe "e:\File-2.py"
start /b c:\Users\YOUR-USER\AppData\Local\Programs\Python\Python312\python.exe "e:\File-3.py"
start /b c:\Users\YOUR-USER\AppData\Local\Programs\Python\Python312\python.exe "e:\File-4.py"
start /b c:\Users\YOUR-USER\AppData\Local\Programs\Python\Python312\python.exe "e:\File-5.py"


echo Toate scripturile au fost pornite. Apăsați orice tastă pentru a închide această fereastră.
pause > nul
© www.soinside.com 2019 - 2024. All rights reserved.