일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 데이터 해저드
- linux c 컴파일
- DNN Accelerator
- CUDA
- CDC
- gpgpu-sim
- pyverilog 설치 오류
- Pyverilog 설치
- 딥러닝 가속기
- Design DNN Accelerator
- Pyverilog 튜토리얼
- linux makefile 작성
- Data HAzard
- 남산업힐
- gcc 컴파일
- 대구 반도체 설계기업 특화
- Makefile compile
- 클럭 게이팅
- Pyverilog 실행
- 컨벌루션 연산
- CLOCK GATING
- pytest-pythonpath 설치 오류
- makefile
- AMBA
- systolic array
- Pyvrilog tutorial
- DNN 가속기
- linux c++ 컴파일
- 이진수 곱셈 알고리즘
- pygraphviz 설치 오류
- Today
- Total
오늘은 맑음
Python argument를 받아보자, argparse 본문
C언어에서 실행파일에 argument를 전달할 때에는 argc, argv를 이용합니다.
Python 역시 argument를 전달해서 동작을 수행해야 하는데 그 방법 중 하나로 argparse를 알아보겠습니다.
argparse는 import argparse를 통해 사용할 수 있습니다.
파서 만들기
argparse를 import했다면 parser를 만들어주어야 합니다.
parser를 만드는 방법으로는 argparse의 ArgumentParser를 이용합니다.
ex) parser = argparse.ArgumentParser()
Argument | Description | Default |
prog | 프로그램의 이름 | sys.argv[0] |
usage | 프로그램 사용법 | 파서에 추가된 인자로부터 만들어지는 값 |
description | 인자 도움말 전에 표시할 텍스트 | None |
epilog | 객체들의 리스트 | |
parant | 도움말 출력을 사용자 정의 | |
prefix_chars | 선택 인자 앞에 붙는 문자 집합 | 기본값 : - |
argument_default | 추가 인자를 읽어야 하는 파일 앞에 붙는 문자 집합 | None |
conflict_handler | 충돌하는 선택 사항을 해결하는 방법 | 일반적으로 불필요 |
add_help | 파서에 -h/--help 옵션을 추가 | True |
allow_abbrev | 약어가 모호하지 않으면 긴 옵션을 축약할 수 있도록 함 | True |
이렇게 만들어진 parser를 사용하려면 인자를 추가해주어야 합니다.
인자 추가는 add_argument를 이용합니다.
ex)
parser = argparse.ArgumentParser()
parser.add_argument(option1, option2, ...)
add_argument의 옵션
Argument | Definition | Description |
name of flags | 옵션 문자열의 이름이나 리스트 | 옵션 인자의 이름, ex) main -num1 |
action | 해당 인자가 명령행에서 발견되었을 때 수행 할 동작 | -store : 인자를 저장 -store_true : 인자를 true로 저장 -store_false : 인자를 false로 저장 -store_const : 인자에 지정된 값을 저장 -append : 인자의 리스트에 값을 추가 -append_const : 인자의 리스트에 지정된 값을 추가 -count : 키워드 인자가 몇 번 호출되었는지 카운트 |
nargs | 사용할 인자의 개수 | nargs를 통해 하나의 인자에서 여러개의 값을 받을 수 있다 |
const | 일부 action 및 nargs를 선택할 때 필요한 상수값 | action의 const 옵션이 들어간 경우와 nargs를 선택시 사용 |
default | 명령행에서 인자를 사용하지 않을 때 생성되는 기본값 | 명령행에서 인자가 호줄퇴지 않았을 때 입력 될 기본 값 |
type | 명령행 인자의 데이터 타입 | 명령행 인자의 데이터 타입을 지정, ex) int, str |
choices | 인자로 허용되는 값의 컨테이너 | 파싱 시 받을 수 있는 인자의 값을 지정. 인자의 값을 확인하고 받을 수 없는 값이라면 에러메시지를 출력 |
required | 명령행 옵션을 생략할 수 있는지 | 만약 required가 True인 경우 해당 인자는 반드시 명령행에 포함되어야함 |
help | 각 인자에 대한 설명 | -h/--help 옵션을 넣었을 때 각 인자에 대한 설명 |
metavar | 사용 메시지에 사용되는 인자의 이름 | 기본적으로 help 메시지에서 인자의 이름으로 dest값을 사용하지만 metavar를 사용하면 출력되는 이름을 변경할 수 있음 |
dest | parse_args()가 반환하는 객체에 추가될 attribute의 이름 | parse_args()에 의해 반환된 객체의 attribute |
위의 옵션들은 add_argument()의 인자로 들어갑니다.
이제 argparse를 이용해서 간단한 계산기를 만들어 실습을 해보겠습니다.
실습 프로젝트는 입력된 명령행을 parsing하는 parse, parser의 인자를 받아서 동작을 수행하는 calculator와 main으로 구성되어 있습니다.
먼저 parse에서는 ArgumentParser를 이용해서 parser객체를 생성합니다.
그리고 parser 객체에 add_argument를 이용해서 명령행을 parsing합니다.
-op1, -op2의 데이터 타입은 int형으로 기본값은 0입니다.
opr의 데이터 타입은 str이며 기본값은 add입니다.
이렇게 parsing이 완료되면 parse_args()함수를 이용해서 parse 객체의 문자열을 객체로 반환해 args에 저장하고 args를 반환합니다.
Calculator에서는 args를 입력으로 받아 해당 인자에 따른 동작을 수행하게 됩니다.
help옵션을 이용했을 때 출력은 위와 같습니다.
name, choices, dest, help 순으로 출력 되는 것을 볼 수 있습니다.
동작 결과
choices에 의해 정해진 옵션 외의 입력을 주었을 때
Reference
'Language > Python' 카테고리의 다른 글
Python 파일을 읽어서 수정해보자 (0) | 2021.07.18 |
---|---|
Python 폴더 내부의 파일에 접근해보자 (0) | 2021.07.12 |
Python 접두사/접미사로 문장 검색(startswith, endswith) (0) | 2021.07.10 |
Python 파일을 읽고 써보자(write, writelines, read, readline, readlines) (2) | 2021.07.10 |
Python 파일을 열어보자(open, close) (0) | 2021.07.10 |