language/Python

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

스파이디웹 2022. 3. 3. 13:04
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