我主要使用 arcgis 和 pci 风格的 python 2.7。我创建了许多在这些程序之外运行但使用这些库的进程。它们通过 cmd 通过 .bat 文件运行。
目前,他们在一系列 for 循环中运行进程。每个 for 循环都按顺序处理。我想知道是否有一种方法可以在 for 循环中同时对列表中的每个对象运行处理。那是并行的。我能想到的唯一方法是为列表中的每个对象打开一个cmd,并单独运行处理。
我问的问题可能吗?我应该在哪里寻找解决方案?
最佳答案
查看Subprocess因此,您希望在后台创建一个新的命令行窗口,其中 test.bat 并行运行..并且在您的情况下,您不想等待命令完成后再继续程序,因此请使用 subprocess.Popen 代替(可以是值得研究的东西 好吧)
subprocess.call
Run the command described by args. Wait for command to complete, then return the returncode attribute.
如果您想从 python 脚本启动外部程序,请将程序的文件名传递给 Ubuntu Linux 上的 subprocess.Popen(),您将输入类似
>>>import subprocess
>>>subprocess.Popen('/usr/bin/gnome-...')
<subprocess.Popen Object at 0x7f2bcf93b20
返回值是一个 Popen 对象,它有两个有用的方法: poll() 和 wait()
poll() 就像询问你的 friend 是否已经运行完你给他的代码。 wait() 就像等待你的 friend 完成他的代码,然后你再继续处理你的代码。(你可能想研究一下)
关于python - 并行 Python for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47723305/