p.wait()不等待子进程终止! Python 2.7

时间:2016-06-06 17:50:59

标签: python-2.7 winapi subprocess popen

我有以下代码启动一个复制文件的进程。但是,它不等待过程完成,任何帮助将不胜感激!

p = Popen([batch_command, numberID, date_string, wait_string, environment],  stdout=subprocess.PIPE, stderr=subprocess.PIPE)
output, errors = p.communicate()
p.wait() # wait for process to terminate

我尝试在最后使用p.communicate而不是p.wait(),但它似乎没有用。我需要让程序等到所有子进程都完成。

我尝试了以下代码,以便进程可以等待,但是,它并没有真正帮助。

while p.poll() is None: 
    time.sleep(0.5)                     
log.write("Process is running...")

尝试使用win32api作为ctype,我想出了以下python脚本来实现等待时间,直到该过程完成。我希望它等到它完成后,我不想杀它。

if p.returncode is None:
    if win32event.WaitForSingleObject(p._handle, 0) == win32event.WAIT_OBJECT_0:
                p.returncode = GetExitCodeProcess(p._handle)
return p.returncode

0 个答案:

没有答案