[Python] subprocess.check_output 이란?

파주상남자 ㅣ 2025. 5. 8. 16:52

반응형

✅ subprocess.check_output()을 이해하려면 알아야 할 개념:

  1. subprocess 모듈
    • 외부 프로세스를 실행하는 기능을 제공함.
    • subprocess.run(), subprocess.Popen(), subprocess.check_output() 등 다양한 함수 포함.
  2. check_output() 함수란?
    • 외부 명령어를 실행하고, 그 결과를 바이트 문자열(bytes)로 반환함.
    • 기본적으로 표준 출력(stdout)만 캡처함.

✅ 예제 코드 (기본 사용법)

import subprocess

output = subprocess.check_output(["ls", "-l"])  # "ls -l" 명령어 실행
print(output.decode())  # bytes → 문자열 변환
  • ["ls", "-l"]: 리스트로 명령어 전달 (쉘 없이 실행됨)
  • .decode(): bytes를 str로 변환

✅ subprocess.check_output()을 사용할 때 중요한 옵션

옵션 설명
shell=True 명령어를 셸을 통해 실행 (예: subprocess.check_output("ls -l", shell=True))
text=True 또는 universal_newlines=True 출력을 str로 변환 (바이트 변환 필요 없음)
stderr=subprocess.STDOUT 표준 에러(stderr)도 함께 캡처
timeout=초 일정 시간 후 프로세스 종료

✅ 예제 코드 (옵션 포함)

output = subprocess.check_output("ls -l", shell=True, text=True)
print(output)  # 이미 문자열이므로 decode() 불필요
반응형

'Python' 카테고리의 다른 글

[python] python env 가상환경 만들기 & 활용 가이드  (1) 2025.09.02
[Python] Subprocess 란?  (0) 2025.05.08