>백엔드 개발 >파이썬 튜토리얼 >Python이 실행되는 동안 Python에서 실시간 하위 프로세스 출력을 어떻게 표시할 수 있나요?

Python이 실행되는 동안 Python에서 실시간 하위 프로세스 출력을 어떻게 표시할 수 있나요?

Patricia Arquette
Patricia Arquette원래의
2024-10-30 05:36:27344검색

How can I display live subprocess output in Python while it's executing?

실행 중 실시간 하위 프로세스 출력 표시

Python 스크립트에서 하위 프로세스를 활용하는 경우 출력에 액세스하기 전에 프로세스가 완료될 때까지 기다리는 것이 답답할 수 있습니다. 이는 시간이 오래 걸리는 프로세스에서 특히 두드러집니다. 따라서 출력이 생성되는 대로 지속적으로 표시할 수 있는 방법을 찾는 것이 필요합니다.

이를 위해서는 iter 함수를 사용하여 명령으로 출력되는 즉시 라인을 처리할 수 있습니다. 다음 코드 샘플은 일반적인 사용 사례를 보여줍니다.

<code class="python">from __future__ import print_function # Only Python 2.x
import subprocess

def execute(cmd):
    popen = subprocess.Popen(cmd, stdout=subprocess.PIPE, universal_newlines=True)
    for stdout_line in iter(popen.stdout.readline, ""):
        yield stdout_line 
    popen.stdout.close()
    return_code = popen.wait()
    if return_code:
        raise subprocess.CalledProcessError(return_code, cmd)

# Example
for path in execute(["locate", "a"]):
    print(path, end="")</code>

이 방법을 활용하면 프로세스가 실행되는 동안 프로세스의 출력을 효과적으로 스트리밍할 수 있으므로 프로세스가 완료될 때까지 기다릴 필요가 없습니다.

위 내용은 Python이 실행되는 동안 Python에서 실시간 하위 프로세스 출력을 어떻게 표시할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.