Я пытаюсь запустить файл .exe
с ограничением по времени subprocess.Popen()
. Я попытался использовать комбо 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)