Python에서 비동기 셸 명령 실행
Python 스크립트 내에서 외부 셸 명령의 비동기 실행을 용이하게 하려면 os 사용을 고려할 수 있습니다. .system() 함수. 그러나 이 접근 방식에서는 동기 동작을 피하기 위해 명령 끝 부분에 & 기호를 활용합니다. 결과적으로 비동기 실행을 달성하는 데 적합한 방법으로서의 타당성에 대한 우려가 제기됩니다.
하위 프로세스: 우수한 솔루션
os.system() 대신 subprocess 모듈은 Popen 클래스 형태로 보다 적절한 솔루션을 제공합니다. 이 클래스를 사용하면 장기 실행 명령을 비동기식으로 원활하게 실행할 수 있으므로 외부 명령이 작업을 수행하는 동안 Python 스크립트가 작업을 계속할 수 있습니다.
구현
설명하려면 Popen 사용 시 다음 예를 고려하십시오.
<code class="python">from subprocess import Popen # Initiate the long-running 'watch ls' command p = Popen(['watch', 'ls']) # Continue executing the Python script while the command runs # ... # Terminate the subprocess when necessary p.terminate()</code>
추가 기능
Popen 인스턴스는 비동기 실행 외에도 여러 가지 다른 기능을 제공합니다. 특히, poll() 메소드를 통해 실행 상태를 모니터링할 수 있습니다. 또한, 통신() 메소드를 활용하여 stdin을 통해 데이터를 교환하고 프로세스 종료를 기다릴 수 있습니다.
위 내용은 Python에서 비동기 셸 명령 실행을 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!