[英]subprocess.Popen().kill() + subprocess.Popen().communicate() halts the program
我正在尝试运行具有时间限制subprocess.Popen()
的.exe
文件。 我尝试使用process.kill()
+ process.communicate()
组合来处理异常。 但是当我尝试实现它时,程序就停止了。
process = subprocess.Popen(f"{filename}.exe", stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE,shell = True)
try:
process.stdin.write(curr_input.encode("utf-8"))
result, error = process.communicate(timeout=2)
error = error.decode('utf-8')
result = result.decode('utf-8')
process.wait()
if process.returncode != 0:
return result + "\n" + error + "\n" + "error code: " + str(process.returncode)
else:
return result
except subprocess.TimeoutExpired:
process.kill()
outs, err = process.communicate()
process.wait()
return "Timed out\n" + "error code: " + str(process.returncode)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.