Summary

  • argparse는 터미널 명령어를 통해 스크립트 내부의 변수 값을 제어할 수 있게 해주는 CLI 도구
  • 파서 생성 → 인자 추가 → 분석 3단계 흐름
  • 위치 인자(필수)와 선택 인자로 구분하여 다양한 실행 환경 설계 가능

0. 들어가며

argparse를 사용하면 터미널에서 옵션을 입력해 Python 코드 내 변수 값들을 제어할 수 있다.

python main.py extract --sample 10 --verbose

1. 개요

argparse는 커맨드 라인에서 인자(Argument)를 받아 파이썬 내부 변수로 변환해 주는 라이브러리


2. 기본 사용법

2.1 흐름

import argparse
 
# 1. Parser 생성
parser = argparse.ArgumentParser(description="이 프로그램은 예제입니다.")
 
# 2. 인자 추가
parser.add_argument("name", help="사용자 이름")
parser.add_argument("--age", help="나이")
 
# 3. 분석
args = parser.parse_args()
print(f"이름: {args.name}, 나이: {args.age}")

2.2 위치 인자 vs 선택 인자

구분위치 인자선택 인자
특징하이픈(-) 없음하이픈(-, --) 붙음
규칙필수 입력, 순서 중요생략 가능, 순서 무관
용도핵심 데이터옵션 설정, 모드 변경

2.3 핵심 옵션

옵션기능설명
type타입 지정기본 str → 다른 타입으로 변환
default기본값 설정미입력 시 사용할 값
choices선택지 제한유효성 검사 자동화
action플래그 설정옵션 존재 여부 검사
required필수 옵션선택 인자지만 입력 강제
nargs리스트로 받기입력값을 리스트로 수신
parser.add_argument("--count", type=int)
parser.add_argument("--mode", default="normal")
parser.add_argument("color", choices=['red', 'blue', 'green'])
parser.add_argument('--verbose', action='store_true')
parser.add_argument('--api-key', required=True)
parser.add_argument('--files', nargs='*')

3. 활용

import argparse
 
def main():
    parser = argparse.ArgumentParser(description="데이터 처리 파이프라인")
    parser.add_argument("mode", choices=["extract", "convert", "validate", "all"])
    parser.add_argument("-s", "--sample", type=int, default=None)
    parser.add_argument("-v", "--verbose", action="store_true")
    args = parser.parse_args()
 
    print(f"🚀 실행 모드: {args.mode}")
    if args.verbose:
        print("📢 상세 로그 모드 활성화")
    if args.sample:
        print(f"🧪 샘플 {args.sample}개만 처리")
 
if __name__ == "__main__":
    main()
python main.py extract -s 5 --verbose
# 🚀 실행 모드: extract
# 📢 상세 로그 모드 활성화
# 🧪 샘플 5개만 처리

마치며

argparse를 사용하면 코드 수정 없이 터미널 명령어만으로 프로그램 동작을 유연하게 바꿀 수 있다.


Reference