[파이썬] subprocess 리눅스에서 `subprocess` 사용하기

리눅스 환경에서 파이썬을 사용하면서 외부 명령이나 프로세스를 실행해야 할 때, subprocess 모듈을 사용할 수 있습니다. subprocess 모듈은 파이썬 프로그램 안에서 다른 프로그램을 실행하고 해당 프로세스와의 상호작용을 가능하게 해주는 유용한 도구입니다.

subprocess 모듈의 기본 사용법

subprocess 모듈을 사용하여 외부 명령을 실행하려면 다음과 같은 단계를 따라야 합니다.

  1. subprocess 모듈을 임포트합니다.
  2. 실행할 외부 명령을 지정합니다.
  3. 필요한 경우 명령행 인수를 추가합니다.
  4. subprocess.run() 함수를 호출하여 외부 명령을 실행합니다.
  5. 실행 결과를 확인하거나 출력을 다룰 수 있습니다.

아래는 subprocess 모듈을 사용하여 리눅스에서 ‘ls’ 명령을 실행하는 예제 코드입니다.

import subprocess

result = subprocess.run(['ls', '-l'], capture_output=True, text=True)

if result.returncode == 0:
    print(result.stdout)
else:
    print(result.stderr)

위의 코드에서 subprocess.run() 함수에는 인자로 실행할 명령을 리스트 형태로 전달하고, capture_output=Truetext=True 매개변수로 실행 결과를 캡처하고 텍스트 형태로 받아오도록 설정했습니다.

subprocess.run() 함수는 CompletedProcess 객체를 반환하며, 실행 결과인 표준 출력은 stdout 속성에 저장되어 있습니다. 실행이 성공적으로 완료되었을 경우 returncode 속성은 0이 되며, 그 이외의 경우에는 에러가 있었음을 나타내는 숫자 값이 됩니다.

명령 실행 후 표준 출력 이외의 다른 작업 수행하기

subprocess 모듈은 단순히 명령을 실행하는 것 이외에도 다양한 작업을 수행할 수 있습니다. 예를 들어, 명령 실행 후에 작업 결과 파일을 읽어오거나, 외부 프로세스와 상호작용을 하려면 다음과 같은 함수들을 사용할 수 있습니다.

결론

subprocess 모듈은 파이썬 프로그램에서 외부 명령을 실행하고 그 결과를 다루는데 사용되는 강력한 도구입니다. 이 모듈을 통해 리눅스 환경에서 여러 가지 작업을 자유롭게 처리할 수 있으며, 명령 실행 결과를 쉽게 다룰 수 있습니다. subprocess 모듈의 다양한 함수들을 숙지하여 프로그램 개발에 활용해보세요.