[파이썬] subprocess 쉘 스크립트와 함께 `subprocess` 사용하기

파이썬에서는 subprocess 모듈을 사용하여 외부 프로세스를 실행할 수 있습니다. 이 모듈은 쉘 스크립트를 실행하거나 다른 프로그램을 호출하는 데 사용될 수 있습니다. 이 기능은 파이썬을 사용하여 시스템 관리 작업을 자동화하거나 외부 프로그램의 결과를 가져와서 처리해야 하는 경우에 매우 유용합니다.

subprocess 모듈 소개

subprocess 모듈은 외부 프로세스와 상호작용하기 위한 여러 가지 함수와 클래스를 제공합니다. 주요 클래스 중에는 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=Truetext=True를 사용하여 받아올 수 있습니다.

결론

subprocess 모듈을 사용하면 파이썬에서 외부 프로세스를 실행하고 제어할 수 있습니다. 쉘 스크립트를 실행하거나 다른 프로그램을 호출하여 시스템 관리 작업을 자동화하거나 결과를 처리할 수 있습니다. subprocess 모듈은 파이썬의 강력한 기능 중 하나이며, 시스템 관리나 데이터 처리 작업에 유용하게 사용될 수 있습니다.