下面的脚本(调用python进程,调用waitfor cmd,超时为4秒)应该在 4秒之后结束。 但是,在 20秒超时之后,proc.communicate会停止。
为什么???
if __name__ == "__main__":
proc_str = ["C:\\Program Files (x86)\\Anaconda3\\Python.exe",
"-c", "import
subprocess;subprocess.run('cmd /S /C waitfor g /t 200', shell=False, timeout=4)"]
proc = subprocess.Popen(proc_str,
stdin=subprocess.PIPE,
stderr=subprocess.PIPE,
stdout=subprocess.PIPE,
shell=False,
universal_newlines=True)
(proc_out, proc_err) = proc.communicate(timeout=20)
if (proc.returncode == 0):
pass
如果删除stdin / stderr / stdout参数,一切正常100%