[파이썬] subprocess `Popen` 객체의 메서드와 속성
Python의 subprocess
모듈은 외부 프로세스와 상호작용하기 위한 강력한 도구를 제공합니다. Popen
클래스는 subprocess
모듈에서 중요한 역할을 담당하며, 외부 명령어를 실행하고 입력/출력 스트림을 관리하는 데 사용됩니다.
이번 포스트에서는 Popen
객체의 주요 메서드와 속성에 대해 알아보겠습니다.
Popen
객체 생성
Popen
객체는 외부 명령어를 실행하기 위해 사용됩니다. 다음은 Popen
객체를 생성하는 방법입니다:
import subprocess
# 외부 명령어 실행
process = subprocess.Popen(['ls', '-l'])
# 표준 출력 결과 확인
output, error = process.communicate()
print(output.decode())
Popen
객체 메서드
Popen
객체에는 다양한 메서드가 있으며, 외부 명령어를 실행하고 상호작용하는 데 사용됩니다.
communicate()
: 외부 명령어와의 상호작용을 위해 입력/출력 스트림을 관리합니다. 외부 명령어 실행 후 표준 출력과 표준 에러를 반환합니다.wait()
: 외부 명령어의 종료를 대기합니다. 외부 명령어가 실행되는 동안 코드 실행이 일시 중단됩니다.terminate()
: 실행 중인 외부 명령어를 종료합니다. 명령어가 종료되지 않으면kill()
메서드를 사용하여 강제 종료할 수 있습니다.
Popen
객체 속성
Popen
객체의 속성을 통해 외부 명령어의 상태와 특성 등을 확인할 수 있습니다.
pid
: 실행 중인 프로세스의 PID(프로세스 ID)를 반환합니다.returncode
: 외부 명령어의 종료 상태 코드를 반환합니다.None
은 명령어가 아직 실행 중임을 의미하며,0
은 정상 종료를 나타냅니다.stdin
: 외부 명령어의 표준 입력 스트림을 나타내는 파일 객체입니다.stdout
: 외부 명령어의 표준 출력 스트림을 나타내는 파일 객체입니다.stderr
: 외부 명령어의 표준 에러 스트림을 나타내는 파일 객체입니다.
이러한 메서드와 속성을 활용하여 외부 명령어와의 상호작용을 효과적으로 관리할 수 있습니다. Popen
객체는 파이썬에서 외부 프로그램 실행에 유용한 기능을 제공하는 강력한 도구입니다.
Note:
Popen
객체의 모든 속성과 메서드에 대한 자세한 설명은 Python 공식 문서를 참조하세요.
이것으로 subprocess
모듈에서 Popen
객체의 메서드와 속성에 대해 알아보았습니다. 이러한 기능을 활용하여 외부 프로세스와의 상호작용을 더욱 유연하게 다룰 수 있습니다.