파이썬에서는 subprocess
모듈을 사용하여 외부 프로세스를 실행할 수 있습니다. 이 모듈은 쉘 스크립트를 실행하거나 다른 프로그램을 호출하는 데 사용될 수 있습니다. 이 기능은 파이썬을 사용하여 시스템 관리 작업을 자동화하거나 외부 프로그램의 결과를 가져와서 처리해야 하는 경우에 매우 유용합니다.
subprocess 모듈 소개
subprocess
모듈은 외부 프로세스와 상호작용하기 위한 여러 가지 함수와 클래스를 제공합니다. 주요 클래스 중에는 Popen
, PIPE
, STDOUT
등이 있습니다.
Popen
: 외부 프로세스를 실행하고 제어하기 위한 클래스입니다.PIPE
: 외부 프로세스의 표준 입력 또는 출력에 대한 연결을 제공하는 상수입니다.STDOUT
: 표준 입력 대신에 표준 출력에 연결하는 상수입니다.
쉘 스크립트 실행 예시
다음은 subprocess
를 사용하여 쉘 스크립트를 실행하는 간단한 예시입니다.
import subprocess
# 쉘 스크립트 실행
subprocess.run(['sh', 'script.sh'])
# 쉘 스크립트 실행 후 결과 출력
result = subprocess.run(['sh', 'script.sh'], capture_output=True, text=True)
print(result.stdout)
위 예시에서 subprocess.run()
함수를 사용하여 쉘 스크립트를 실행합니다. 쉘 스크립트는 ['sh', 'script.sh']
형태로 전달됩니다. capture_output=True
는 쉘 스크립트의 출력을 캡처하고 결과를 받아온다는 옵션입니다. text=True
는 출력을 텍스트 형식으로 받아온다는 옵션입니다.
외부 프로그램 호출 예시
subprocess
를 사용하여 외부 프로그램을 호출하는 예시입니다.
import subprocess
# 외부 프로그램 호출
subprocess.run(['ls', '-l'])
# 외부 프로그램 호출 후 결과 출력
result = subprocess.run(['ls', '-l'], capture_output=True, text=True)
print(result.stdout)
위 예시에서는 ls
명령어를 호출하는 방법을 보여줍니다. ['ls', '-l']
은 외부 프로그램과 해당 명령행 인수를 전달하는 방식입니다. 출력 결과는 마찬가지로 capture_output=True
와 text=True
를 사용하여 받아올 수 있습니다.
결론
subprocess
모듈을 사용하면 파이썬에서 외부 프로세스를 실행하고 제어할 수 있습니다. 쉘 스크립트를 실행하거나 다른 프로그램을 호출하여 시스템 관리 작업을 자동화하거나 결과를 처리할 수 있습니다. subprocess
모듈은 파이썬의 강력한 기능 중 하나이며, 시스템 관리나 데이터 처리 작업에 유용하게 사용될 수 있습니다.