Python同步运行?一次运行一个可执行文件

标签 python executable os.system

尝试使用 python 控制大量已编译的可执行文件,但遇到了时间线问题!我需要能够同时运行两个可执行文件,并且还能够“等待”直到一个可执行文件完成后再启动另一个可执行文件。此外,其中一些需要 super 用户。这是我目前所拥有的:

import os
sudoPassword = "PASS"
executable1 = "EXEC1"
executable2 = "EXEC2"
executable3 = "EXEC3"
filename = "~/Desktop/folder/"
commandA = filename+executable1
commandB = filename+executable2
commandC = filename+executable3
os.system('echo %s | sudo %s; %s' % (sudoPassword, commandA, commandB))
os.system('echo %s | sudo %s' % (sudoPassword, commandC))
print ('DONESIES')

假设 os.system() 在移动到下一行之前等待可执行文件完成,这应该同时运行 EXEC1 和 EXEC2,并在它们完成后运行 EXEC3... 但事实并非如此。实际上,它甚至在 commandB 完成之前就在 shell 中打印“DONESIES”…… 请帮忙!

最佳答案

您的脚本仍将按顺序执行所有 3 个命令。在 shell 脚本中,分号只是在一行中放置多个命令的一种方式。它没有做任何特别的事情,只是一个接一个地运行它们。

如果您想从 Python 程序并行运行外部程序,请使用 subprocess 模块:https://docs.python.org/2/library/subprocess.html

关于Python同步运行?一次运行一个可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27067614/

相关文章:

linux - 使用 GNU objcopy 从 Elf 生成可执行二进制文件

opencv - 如何在后台打开网站然后关闭而不中断使用python的程序流程?

python - 在 Win10 上从 Python 备份 Postgres

python - AWS boto3 get_object 调用的 IfMatch 参数如何工作?

python - 使用分页在 Python 中返回所有 Azure AD 用户信息

c# - 计算在共享文件夹上运行的 .exe 的所有实例

Python os.system 输入要在 CLI 应用程序中执行的命令

python - torch 中的 w -= dw 与 w = w - dw

python - Pandas 中带有运行编号的新列,有条件地递增

python - 在 Python shell 中运行程序