【发布时间】:2011-09-02 01:15:53
【问题描述】:
我是 Python 的新手。我最近尝试使用 Python 脚本来调用控制台 exe,这是一个需要很长时间的过程。我将允许在 CPU 允许的范围内多次调用 exe。当 exe 完成其工作时。它应该将 CPU 释放给其他新作业。所以我想我可能需要多进程控制机制。
由于多处理只能调用 python 可调用函数。它不能直接调用控制台exe。我将 subprocess.Popen(cmd) 包装在 python 函数中。但是,在我这样做之后,我发现在使用 multiprocessing.Process.start() 之前。 exe已经启动。问题是在它完成它正在做的事情之前(需要很长时间),它不会把控制权还给我。程序被冻结等待。这不是我想要的。
我发布的代码如下:
import sys
import os
import multiprocessing
import subprocess
def subprocessExe(cmd):
return subprocess.call(cmd, shell=False, stdout=subprocess.PIPE, \
stderr=subprocess.PIPE,creationflags=0x08000000)
if __name__ == '__main__':
p = multiprocessing.Process(target=self.subprocessExe(exeFileName))
p.start()
print p, p.is_alive()
感谢您的宝贵时间!
【问题讨论】:
标签: python console subprocess multiprocessing exe