본문 바로가기
language/Python

[Python] Argparse란? Argparse 모듈 개념과 실습 예제

by 스파이디웹 2022. 3. 3.
728x90

1. argparse란?

프로그램에 필요한 인자를 사용자 친화적인 명령행 인터페이스로 쉽게 작성하도록 돕는 라이브러리

command 창에서 프로그램 내의 인자를 조절하게끔 도와줌


2. argparse를 사용 하는 경우

스크립트를 실행할 때 인자를 받아서 변수를 처리해야 되는 경우가 생기는데 그럴 때 argparse를 사용합니다.

ex)

ETL script 내의 시간 변수

parser.add_argument('--D1', required=False)
parser.add_argument('--D2', required=False)
parser.add_argument('--HH', required=False)

3. argparse 예제

argparse를 통해 입력받은 인수를

1) 각 변수에 저장하기

2) 리스트에 저장하기

3) 딕셔너리로 저장하기

import argparse

parser = argparse.ArgumentParser(description='Arugment 설명')#parser객체 생성

#parser에 인자 추가시키기, first, second, third 인자 추가
parser.add_argument('--first', type=int)
parser.add_argument('--second', type=int)
parser.add_argument('--third', type=str)

#parse_args()를 통해 parser객체의 인자들 파싱
args = parser.parse_args()

print(args)
print(type(args))

#인자에 해당하는 인수를 받아 저장할 변수 초기화 1)각 변수에 저장하기
first="na"
second="na"
third="na"

#변수 초기화 확인
print(first, second, third)

#args객체의 인자에 값이 들어오면 각 변수에 args의 인수를 대입한다.
if args.first != None: first=args.first
if args.second != None: second=args.second
if args.third != None and len(args.third) >= 1: third=args.third

#변수에 대입된 args객체의 각 인수를 출력
#print("first=%d, second=%d, third=%s" % (first, second, third))
#print("first={0}, second={1}, third={2}".format(first, second, third))
print(f"first={first}, second={second}, third={third}")

#args_list 리스트를 만들어 args객체의 인수를 추가시켜준다.2)리스트에 저장하기
args_list=[]
args_list.append(args.first)
args_list.append(args.second)
args_list.append(args.third)

#리스트의 값들 출력
for i in range(len(args_list)):
    print(args_list[i])

#args의 딕셔너리 값을 대입하고 출력한다.3)딕셔너리로 저장하기
args_dict=vars(args)
print(args_dict)
for i in args_dict.values():
    print(i)

위의 코드 출력값

 

argparse의 사용하는 경우라던지, 추가 내용이 있을경우 추가적으로 올리겠습니다.

마지막 업로드일(2022-03-15)

728x90

댓글