【发布时间】:2018-01-05 10:59:07
【问题描述】:
我正在尝试在 Windows 7(和 10)中并行运行多个 Python 脚本。我从另一个 Python 脚本运行它们,该脚本对脚本正在编辑的文件执行更多功能。我希望外部脚本等到其他脚本完成运行。我试过start /w,但这让每个脚本在关闭控制台窗口之前都要等待。
基本上我想做的是让 Python 等到 3 个进程完成。最后一个脚本只是一个print("done"),对我所关心的人来说毫无意义。这对我用 3 个进程解决很重要,因为我需要用 30 个进程做同样的事情。(在服务器上,有足够的可用线程。)
这是我正在尝试运行的 CMD 命令。
os.system("start python node1.py & start python node2.py & start python node3.py && start /w printstatement.py")
有什么建议吗?
【问题讨论】:
-
嗨,你能说得清楚一点吗?发现难以理解。到目前为止,您正在尝试从主脚本并行运行三个程序,并且主脚本包含程序编辑的内容。我说的对吗?
-
你是。主脚本使用上述示例运行 3 个不同的任务。在继续其他任务之前,它需要等待它们全部完成。因为我不想让程序在估计的时间内休眠,所以我需要它等待所有进程完成。
-
嗯...您的最后一个脚本“printstatement.py”是否依赖于前三个的结果?除了并行运行三个脚本之外,您的主脚本还有其他事情要做吗?您是否尝试过“多处理”来并行化整个过程?
-
我确实尝试过。由于每个脚本有多个不同的 I\O 参数,因此存在问题。
-
@eryksun 你能提供一个
subprocess.Popen的例子吗?可以用多个脚本替换os.system来运行?
标签: python windows cmd parallel-processing