[파이썬] subprocess `subprocess.stdout`: 표준 출력 처리

이번 포스트에서는 Python의 subprocess 모듈을 사용하여 표준 출력을 처리하는 방법에 대해 알아보겠습니다.

subprocess 모듈 소개

subprocess 모듈은 외부 프로세스를 실행하고 통신하는 데 사용됩니다. 이 모듈은 새로운 프로세스를 생성하고, 입력과 출력 스트림을 관리하며, 쉘 명령어를 실행하는 등의 기능을 제공합니다.

표준 출력 처리하기

subprocess 모듈을 사용하여 외부 프로세스를 실행하면, 프로세스의 표준 출력을 캡처하여 사용할 수 있습니다. 이를 통해 외부 프로그램이 생성한 결과를 파이썬에서 처리할 수 있습니다.

다음은 subprocess 모듈을 사용하여 표준 출력을 캡처하는 예제 코드입니다. 이 예제는 ls 명령어를 실행하고, 그 결과를 파이썬에서 출력하는 기능을 구현한 것입니다.

import subprocess

def capture_stdout(command):
    result = subprocess.run(command, capture_output=True, text=True)
    stdout = result.stdout.strip()
    print(stdout)

capture_stdout(['ls', '-l'])

위 코드에서는 subprocess.run() 함수를 사용하여 ls -l 명령어를 실행하고, capture_output=True 옵션을 통해 표준 출력을 캡처합니다. text=True 옵션은 표준 출력을 문자열 형태로 반환하도록 설정하는 역할을 합니다.

result.stdout에서는 실행 결과의 표준 출력을 얻을 수 있으며, .strip() 메서드를 사용하여 문자열 앞뒤의 공백을 제거합니다. 마지막으로, 캡처한 표준 출력을 출력합니다.

위 예제 코드를 실행하면, 현재 디렉토리의 파일 리스트를 파이썬 콘솔에서 확인할 수 있습니다.

결론

Python의 subprocess 모듈은 외부 프로세스를 실행하고 표준 출력을 처리하는 강력한 도구입니다. 이를 통해 다른 프로그램을 통합하거나 외부 명령어를 실행하는 등 다양한 작업을 수행할 수 있습니다. 작성된 코드를 참고하여 자신의 프로젝트에서 표준 출력을 처리하는 기능을 구현해보세요.+