본문 바로가기
프로그래밍/Python

Python ArgumentParser 정리

by 허구의 2025. 7. 10.
728x90

Python에서 스크립트를 작성할 때 사용자가 명령줄에서 인자를 입력할 수 있도록 하는 기능은 매우 유용합니다. 이때 사용하는 표준 모듈이 바로 argparse이며, 그 핵심 클래스가 ArgumentParser입니다. 이 글에서는 ArgumentParser의 내용을 정리하였습니다.

ArgumentParser란 무엇인가요?

ArgumentParser는 Python 내장 모듈인 argparse의 핵심 클래스입니다. 이 클래스는 명령행에서 입력된 인자(arguments)를 해석(parse)하고, 프로그램에서 이를 쉽게 사용할 수 있게 도와줍니다. 즉, 사용자가 명령줄에서 어떤 값을 입력하면 이를 자동으로 분석해서 변수처럼 사용할 수 있도록 해주는 도구입니다.

예를 들어 다음과 같이 실행하는 스크립트를 만들 수 있습니다.

$ python hello.py --name Alice --age 30

 

이때 --name--age는 옵션 인자이며, ArgumentParser를 통해 name="Alice", age=30으로 파싱할 수 있습니다.

 

ArgumentParser 기본 사용법

ArgumentParser를 사용하는 기본적인 방법은 다음과 같습니다:

import argparse

parser = argparse.ArgumentParser(description="간단한 인자 처리 예제")
parser.add_argument('--name', type=str, required=True, help='이름을 입력하세요')
parser.add_argument('--age', type=int, help='나이를 입력하세요')
args = parser.parse_args()

print(f"안녕하세요, {args.name}님!")
if args.age:
    print(f"당신의 나이는 {args.age}살입니다.")

 

이 코드를 hello.py로 저장하고 아래처럼 실행하면:

$ python hello.py --name Alice --age 30

 

출력 결과는 다음과 같습니다:

안녕하세요, Alice님!
당신의 나이는 30살입니다.

 

인자 종류별 설명

ArgumentParser에서는 크게 두 가지 인자 유형을 처리할 수 있습니다.

1. 위치 인자 (Positional Argument)

사용자가 순서대로 입력해야 하는 인자입니다. 예:

parser.add_argument('filename', type=str, help='파일 이름')

 

실행:

$ python script.py myfile.txt

 

2. 옵션 인자 (Optional Argument)

--옵션이름 형태로 입력하며 순서에 상관없고 기본값을 지정할 수도 있습니다.

parser.add_argument('--verbose', action='store_true', help='자세한 출력을 활성화합니다')

 

실행:

$ python script.py --verbose

 

이때 args.verboseTrue가 됩니다.

 

자주 사용하는 옵션들

add_argument() 함수에서 자주 사용하는 인자들은 다음과 같습니다.

  • type: 입력값의 자료형 지정 (예: int, str)
  • default: 입력하지 않았을 때 사용할 기본값
  • required: 옵션 인자를 필수로 지정
  • help: --help 출력 시 표시될 설명
  • choices: 허용되는 값 목록 지정
  • action: 특별 동작 지정 (예: store_true(값이 입력되면 true))

예시:

parser.add_argument('--level', choices=['low', 'medium', 'high'], help='레벨을 선택하세요')

 

예시: 파일 처리 도구

import argparse

parser = argparse.ArgumentParser(description='파일 처리 도구')
parser.add_argument('input_file', type=str, help='입력 파일 경로')
parser.add_argument('--lines', type=int, default=10, help='출력할 줄 수 (기본값: 10줄)')
parser.add_argument('--reverse', action='store_true', help='출력을 역순으로 표시')

args = parser.parse_args()

with open(args.input_file, 'r') as f:
    lines = f.readlines()

if args.reverse:
    lines = lines[::-1]

for line in lines[:args.lines]:
    print(line.strip())

 

이 스크립트를 아래와 같이 실행하면:

$ python file_reader.py sample.txt --lines 5 --reverse

 

 

sample.txt에서 마지막 5줄을 역순으로 출력합니다.

 

감사합니다.

728x90