尝试使用 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/