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