목차

, , , ,

argparse

Python 표준 라이브러리에서 option, positional argument, subcommand를 선언하고 sys.argv를 검증·변환하는 CLI parser다.

Summary

Installation

argparse는 Python 3.2부터 포함된 표준 라이브러리이므로 별도 설치가 필요하지 않다.

python3 --version
python3 -c "import argparse; print(argparse.__file__)"

Windows에서 Python Launcher를 사용하면 py로 바꿔 실행할 수 있다.

Usage

import argparse
 
parser = argparse.ArgumentParser(description="파일을 지정 횟수만큼 처리합니다.")
parser.add_argument("path", help="처리할 파일")
parser.add_argument("-n", "--count", type=int, default=1, help="반복 횟수")
parser.add_argument("--verbose", action="store_true", help="상세 출력")
args = parser.parse_args()
 
for _ in range(args.count):
    print(args.path)
python3 app.py --help
python3 app.py --count 3 README.md

Core API

Common add_argument Options

Examples

Subcommand와 callback

import argparse
 
def cmd_add(args):
    print(f"add: {args.name}")
 
parser = argparse.ArgumentParser(prog="project")
subparsers = parser.add_subparsers(dest="command", required=True)
 
add_parser = subparsers.add_parser("add", help="항목 추가")
add_parser.add_argument("name")
add_parser.set_defaults(func=cmd_add)
 
args = parser.parse_args()
args.func(args)
python3 project.py --help
python3 project.py add demo

Troubleshooting

Compatibility

Help

argparse 자체는 python -m argparse로 사용하는 독립 CLI가 아니다. 작성한 application에서 다음 명령으로 생성된 help를 확인한다.

python3 app.py --help
python3 app.py SUBCOMMAND --help

See Also

History