如何让我的python程序等待子进程完成

时间:2016-08-22 00:21:54

标签: python-3.x batch-file subprocess popen

我有一个python程序,它应该执行一个命令行(命令行是一个psexec命令来调用远程服务器上的批处理文件) 我使用 popen 来调用命令行。远程服务器上的批处理生成返回代码 0 。 现在我必须等待这个返回代码,并根据返回代码我应该继续我的程序执行。 我试图使用.wait()或.check_output(),但由于某种原因对我不起作用。

cmd = """psexec -u CORPORATE\user1 -p force \\\sgeinteg27 -s cmd /c "C:\\Planview\\Interfaces\\ProjectPlace_Sree\\PP_Run.bat" """
p = subprocess.Popen(cmd, bufsize=2048, shell=True,
stdin=subprocess.PIPE, stdout=subprocess.PIPE)
p.wait()
print(p.returncode)
##The below block should wait until the above command runs completely.
##And depending on the return code being ZERO i should continue the rest of 
##the execution.

if p.returncode ==0:
    result = tr.test_readXid.readQuery(cert,planning_code)
    print("This is printed depending if the return code is zero")

Here is the EOF the batch file execution and the return code 有人可以帮我吗?

0 个答案:

没有答案