[파이썬] subprocess `subprocess.call()`: 간단한 호출

파이썬의 subprocess 모듈은 외부 프로세스를 실행하고 제어하는 데 사용됩니다. subprocess.call() 함수는 간단한 호출을 위해 자주 사용되며, 이 블로그 포스트에서는 이 함수에 대해 자세히 알아보겠습니다.

subprocess.call() 함수란?

subprocess.call() 함수는 주어진 명령을 실행하고, 명령의 종료 상태를 반환하는 함수입니다. 기본적으로 명령 실행이 완료될 때까지 대기하며, 명령의 종료 코드를 반환합니다.

subprocess.call() 함수의 사용법

다음은 subprocess.call() 함수의 기본 사용법입니다:

import subprocess

return_code = subprocess.call('command', shell=True)

위 코드에서 ‘command’는 실행하려는 명령을 나타내는 문자열입니다. shell=True 파라미터를 사용하여 셸을 호출하고 명령을 실행합니다.

예제

간단한 예제를 통해 subprocess.call() 함수의 사용법을 이해해 보겠습니다. 다음은 ‘ls’ 명령을 실행하고 목록을 출력하는 예제입니다:

import subprocess

return_code = subprocess.call('ls', shell=True)
if return_code == 0:
    print("Command executed successfully.")
else:
    print("Command failed with code:", return_code)

위 코드를 실행하면 현재 디렉토리의 파일과 폴더 목록이 출력됩니다. subprocess.call() 함수는 명령이 성공적으로 실행되면 0을 반환하고, 실패하면 해당하는 오류 코드를 반환합니다. 이를 통해 실행 결과를 확인할 수 있습니다.

주의사항

subprocess.call() 함수를 사용할 때 명령을 잘 검증해야 합니다. 셸 인젝션 공격으로부터 안전하게 수행되려면 입력 값에 대한 필터링 및 검증을 수행해야 합니다.

명령 실행 시 어떤 출력이 필요한 경우, subprocess.call() 함수보다는 subprocess.check_output() 함수를 사용하는 것이 더 유용할 수 있습니다.

결론

subprocess.call() 함수는 파이썬에서 외부 명령을 실행하고 처리하는 간단한 방법을 제공합니다. 이 함수를 사용하면 쉽게 외부 프로그램을 실행하고, 실행 결과를 확인할 수 있습니다. 그러나 보안을 위해 사용자 입력을 검증하고 적절히 처리하는 것이 중요합니다.