시간 초과 기능이 있는 하위 프로세스 모듈 활용
하위 프로세스가 사전 정의된 시간 내에 실행을 완료해야 하는 필요성은 프로그래밍에서 자주 발생합니다. subprocess 모듈은 명령 실행을 위한 강력한 메커니즘을 제공하지만 본질적으로 시간 초과 기능이 부족합니다.
이러한 제한을 해결하기 위해 Python 3.3 이상에서는 subprocess 모듈 내에 check_output 함수를 제공합니다. 이 함수는 명령에서 stdout 데이터를 가져올 뿐만 아니라 프로세스가 지정된 시간 초과를 초과할 때 예외를 발생시킵니다.
from subprocess import STDOUT, check_output # Set the timeout in seconds timeout = 5 try: # Execute the command with the specified timeout output = check_output(cmd, stderr=STDOUT, timeout=timeout) except CalledProcessError as e: # Handle the error if the process fails with a non-zero exit status pass # Process the merged stdout/stderr data contained in the output variable
이 코드에서 시간 초과 변수는 명령에 허용되는 최대 실행 시간을 결정합니다. check_output은 프로세스가 종료되고 지정된 기간 내에 결합된 stdout/stderr 출력을 반환하도록 보장합니다.
또는 Python 2.x 사용자의 경우 subprocess 모듈의 subprocess32 백포트가 동일한 기능을 제공합니다. 이 백포트는 check_output과 동등한 솔루션을 제공하여 Python 2.x에서 시간 초과 인식 명령 실행을 허용합니다.
위 내용은 Python에서 하위 프로세스 호출에 시간 초과를 어떻게 추가할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!