尝试使用python控制大量编译的可执行文件,但遇到时间线问题!我需要能够同时运行两个可执行文件,并且能够在启动另一个可执行文件之前“等待”可执行文件。另外,其中一些需要超级用户。以下是我迄今为止:Python同步运行?一次运行一个可执行文件
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”... 请帮忙!
你覆盖'os.system'。调用函数而不是分配给它:'os.system('echo%s | sudo%s'%(sudoPassword,commandC))' – utdemir 2014-11-21 18:09:47
using 'from subprocess import call' 不确定我可以用作超级用户。我尝试了以sudo方式运行IDLE,但它不会将 'call()' 中的命令作为sudo进行处理。你能再解释一下吗? – ovadaflame 2014-11-21 18:22:04
你想在被调用的程序的stdout/stderr中发生什么?在屏幕上显示...写入日志文件? – tdelaney 2014-11-21 18:39:29