728x90
반응형
Argparse 모듈이란?
run.py
라는 파이썬 스크립트 파일이 있을 때, 우린 터미널에서 다음과 같은 명령어로 실행한다.
$ ./run.py
어떤 옵션에 따라서 파이썬 스크립트가 다르게 동작하도록 해주려면 명령행을 통해 아래와 같이 인자를 받아야 한다.
run.py
스크립트에서는 사용자가 입력한 명령행의 인자를 파싱한 후 인자 값에 따라 적당한 동작을 수행한다.
이 때, 명령행의 인자를 파싱할 때 사용하는 모듈이 argparse이다.
$ ./run.py -d -1 f
사용법
import argparse
# 인자값을 받을 수 있는 인스턴스 생성
parser = argparse.ArgumentParser(dscription="test")
# 입력받을 인자값 등록
parser.add_argument('--target', required=True, hlep='어느 것을 요구하는지')
parser.add_argument('--env', required=False, default='dev', help='실행환경은 무엇인지')
# 입력받은 인자값을 args에 저장 (type:namespace)
args = parser.parse_args()
# 입력받은 인자값 출력
print(args.target)
print(arges.env)
실행결과 (인자값이 없는 경우)
$ python3 argparse_test.py
usage: argparse_test.py [-h] --target TARGET [--env ENV]
argparse_test.py: error: the following arguments are required: --target
$ python3 argparse_test.py -h
usage: argparse_test.py [-h] --target TARGET [--env ENV]
test
optional arguments:
-h, --help show this help message and exit
--target TARGET 어느 것을 요구하는지
--env ENV 실행환경은 무엇인지
실행결과 (인자값을 준 경우)
$ python3 argparse_test.py --target=테스트 --env=local
테스트
local
$ python3 argparse_test.py --target=테스트
테스트
dev
$ python3 argparse_test.py --env=qa
usage: argparse_test.py [-h] --target TARGET [--env ENV]
argparse_test.py: error: the following arguments are required: --target
argpase.ArgmentParser( )
# parser 생성, 컨테이너 개념
parser = argparse.ArgumentParser(
prog='프로그램 이름(default: sys.arg[0])',
useage='프로그램 사용법을 설명하는 문자열(default:파서에 추가된 인자들로부터 만들어지는 값)''
description='인자 도움말 전에 표시할 텍스트(default:None)',
epilog='인자 도움말 후에 표시할 텍스트(defalt:None)',
parents='ArgumentParser 객체들의 리스트이고, 이 들의 인자들도 포함',
formatter_class='도움말 출력을 사용자 정의하기 위한 클래스',
perfix_chars='선택 인자 앞에 붙는 문자 집합(default:'-')',
fromfile_prefix_chars='추가 인자를 읽어야 하는 파일 앞에 붙는 문자 집합(default:None)',
argument_default='인자의 전역 기본값(default:None)'
conflict_handler='충돌하는 선택 사항을 해결하기 위한 전략(일반적으로 불필요)',
add_help='파서에 -h/--help 옵션을 추가(default:True)',
allow_abbrev='약어가 모호하지 않으면 긴 옵션을 축약할 수 있도록 함.(default:True)'
)
paser.add_argument( )
# 개별 인수 사양을 파서에 연결
parser.add_argument('filename') # positional argument
parser.add_argument('-c', '--count') # option that takes a value
parser.add_argument('-v', '--verbose',
action='store_true') # on/off flag
parameters
- action
- 인수 처리 방법 지정
'store'
,'store_const'
,'store_true'
,'append'
,'append_const'
,'count'
,'help'
,'version'
- choices
- 특정 선택 항목 집합으로 값을 제한
['foo', 'bar']
, 또는 인스턴스range(1, 10)[Container]
- const
- 상수 값 저장
- default
- 인수가 제공되지 않은 경우 사용되는 기본값
- 기본값은
None
- dest
- 결과 네임스페이스에 사용되는 속성 이름 지정
- help
- 인수에 대한 도움말 메시지
- metavar
- 도움말에 표시된 인수의 대체 표시 이름
- nargs
- 인수를 사용할 수 있는 횟수
[int]
,'?'
,'*'
, 또는'+'
- required
- 인수가 필수인지 선택인지 표시
True
또는False
- type
- 인수를 지정된 유형으로 자동 변환
[int]
,[float]
,argparse.FileType('w')
또는 호출 가능한 함수
728x90
반응형
'Programming > Python' 카테고리의 다른 글
[Python] 반복문(for문)으로 변수 여러개 한 번에 선언하기, globals() (2) | 2024.06.09 |
---|---|
[Python] 가상환경 (pipenv,venv, conda) 종류 비교 및 사용법 (0) | 2024.05.05 |
[Python] while문에서 tqdm 사용하기, 구글 이미지 크롤링(스크래핑) (0) | 2024.04.28 |
[Selenium] iframe에 있는 element 크롤링하기, NoSuchElementException error (0) | 2024.04.09 |
[Python] List comprehension 리스트 안에서 for문, if문 사용하기 (0) | 2024.04.09 |