argparse

·2023년 4월 18일
0

Python 라이브러리 argparse

사용자 친화적인 명령줄 인터페이스 쉽게 작성해줄 수 있게 해주는 라이브러리

스크립트에서 허용하는 인수, 해당 유형 및 도움말 메시지를 정의해 명령줄 인수 간단하게 구문 분석하고 유효성 검사할 수 있음

예시

# 1. argparse 가져오기
import argparse
 
# 2. 새로운 ArgumentParser 개체 만들기
parser = argparse.ArgumentParser(description="A simple example of argparse usage.")

# description 매개변수는 선택사항이며 도움말이 표시될 때 스크립트에 대한 간략한 설명을 제공합니다.

# 3. parser에 인수 추가
parser.add_argument("-n", "--name", type=str, help="Your name.")
parser.add_argument("-a", "--age", type=int, help="Your age.")
parser.add_argument("-g", "--gender", choices=["male", "female"], help="Your gender.")

# 3가지 인수 추가
# -n , --name : 이름 문자열 인수
# -a, --age : 나이 정수 인수
# -g, --gender : 선택 항목이 제한된 문자열 인수

# 4. 인수 구문 분석
args = parser.parse_args()

# 이 줄은 명령줄 인수 구문 분석하고 지정된 인수 값이 있는 개체를 반환

# 5. 스크립트에서 인수 사용
print(f"Hello, {args.name}! You are {args.age} years old and your gender is {args.gender}.")

# 이 줄은 단순히 형식이 지정된 문자열로 구문 분석된 인수 print 함

# 6. 완전한 예시
import argparse

parser = argparse.ArgumentParser(description="A simple example of argparse usage.")
parser.add_argument("-n", "--name", type=str, help="Your name.")
parser.add_argument("-a", "--age", type=int, help="Your age.")
parser.add_argument("-g", "--gender", choices=["male", "female"], help="Your gender.")
args = parser.parse_args()

print(f"Hello, {args.name}! You are {args.age} years old and your gender is {args.gender}.")

스크립트 실행하려면 example.py 저장하고 다음 명령 실행

python example.py -n Alice -a 25 -g female

다음을 출력

Hello, Alice! You are 25 years old and your gender is female.

--help 플래그로 스크립트를 실행해 자동으로 생성된 도움말 메시지 볼 수도 있다.

python example.py --help

그러면 다음처럼 출력 됨

usage: example.py [-h] [-n NAME] [-a AGE] [-g {male,female}]

A simple example of argparse usage.

optional arguments:
  -h, --help            show this help message and exit
  -n NAME, --name NAME  Your name.
  -a AGE, --age AGE     Your age.
  -g {male,female}, --gender {male,female}
                        Your gender.

argparse는 Python 스크립트용 명령줄 인터페이스 쉽게 만들 수 있는 강력하고 유연한 모듈

인수 유효성 검사, 유형 검사, 자동 도움말 메시지 생성과 같은 기능 제공

0개의 댓글