많은 파이썬 프로그램은 사용자로부터 명령행 인수를 입력받아 실행됩니다. 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
모듈을 사용하여 num1
과 num2
라는 두 개의 명령행 인수를 정의합니다. type=int
를 사용하여 입력된 값을 정수로 변환하고, help
를 사용하여 각 인수에 대한 설명을 제공합니다. parse_args()
를 호출하여 명령행 인수를 구문 분석하고, args.num1
과 args.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
를 사용하면 파이썬 프로그램에서 명령행 인수를 처리하는 것이 훨씬 쉬워집니다.