subprocess.Popen (). kill () + subprocess.Popen (). communication () останавливает программу - PullRequest
0 голосов
/ 15 апреля 2020

Я пытаюсь запустить файл .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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...