[파이썬] argparse 인수의 예제 및 사용 사례

많은 파이썬 프로그램은 사용자로부터 명령행 인수를 입력받아 실행됩니다. argparse 모듈은 파이썬에서 명령행 인수를 구문 분석하는데 사용되는 강력하고 유연한 도구입니다. 이번 블로그에서는 argparse의 예제와 사용 사례를 살펴보겠습니다.

예제: 간단한 스크립트

먼저, 간단한 스크립트를 작성하고 argparse를 사용하여 명령행 인수를 처리하는 방법을 살펴보겠습니다. 아래의 예제는 사용자로부터 입력 받은 두 수를 더하는 스크립트입니다.

import argparse

def add_numbers(a, b):
    result = a + b
    print(f"The sum of {a} and {b} is {result}")

if __name__ == "__main__":
    parser = argparse.ArgumentParser(description="Add two numbers")
    parser.add_argument("num1", type=int, help="First number")
    parser.add_argument("num2", type=int, help="Second number")
    args = parser.parse_args()
    
    add_numbers(args.num1, args.num2)

이 스크립트는 argparse 모듈을 사용하여 num1num2라는 두 개의 명령행 인수를 정의합니다. type=int를 사용하여 입력된 값을 정수로 변환하고, help를 사용하여 각 인수에 대한 설명을 제공합니다. parse_args()를 호출하여 명령행 인수를 구문 분석하고, args.num1args.num2를 통해 사용자로부터 입력받은 값을 사용할 수 있습니다.

이제 터미널에서 다음과 같이 스크립트를 실행해보세요.

$ python script.py 10 20
The sum of 10 and 20 is 30

num1에는 10, num2에는 20이 할당되며, 결과로 30이 출력됩니다.

사용 사례: 선택적 인수

때로는 스크립트에 필수가 아닌 선택적 인수를 추가해야 할 수도 있습니다. argparse는 선택적 인수를 처리하는 강력한 방법을 제공합니다. 아래 예제는 선택적 인수를 사용하여 사용자로부터 입력받은 파일을 읽고 처리하는 스크립트입니다.

import argparse

def process_file(file_path, verbose=False):
    if verbose:
        print(f"Processing file: {file_path}")
    # 파일 처리 로직 추가

if __name__ == "__main__":
    parser = argparse.ArgumentParser(description="File processing")
    parser.add_argument("file", type=str, help="File path")
    parser.add_argument("-v", "--verbose", action="store_true", help="Verbose output")
    args = parser.parse_args()
    
    process_file(args.file, args.verbose)

이 스크립트는 argparse 모듈을 사용하여 하나의 필수 file 인수와 선택적 --verbose 혹은 -v 인수를 정의합니다. action="store_true"를 사용하여 --verbose 옵션이 지정되면 args.verbose 값이 True로 설정되도록 합니다.

터미널에서 다음 명령어를 실행하여 스크립트를 실행해보세요.

$ python script.py input.txt --verbose
Processing file: input.txt

file에는 “input.txt”가 할당되고, --verbose 옵션이 지정되었으므로 “Processing file: input.txt”가 출력됩니다.

위의 예제는 argparse 모듈의 기본 기능만 보여줍니다. 보다 복잡한 사용 사례에 대해서는 argparse의 공식 문서를 참조하세요. argparse를 사용하면 파이썬 프로그램에서 명령행 인수를 처리하는 것이 훨씬 쉬워집니다.