파이썬 - 1. argparse & configparser

최창우·2023년 1월 11일

python

목록 보기
2/4
post-thumbnail

📕 argparse 이해

Python 파일 (.py) 실행시, 인수를 지정할때 사용하는 라이브러리

기본 사용법

import argparse
parser = argparse.ArgumentParser()
parser.add_argument()
args = parser.parse_args()
# 파일명 : test.py
import argparse

# 인자값을 받을 instance parser 생성
parser = argparse.ArgumentParser(description='테스트용 파서입니다.')

# 입력받을 인자값 지정
parser.add_argument('--framework',
                    required=True,
                    type=str,
                    default='pytorch',
                    help='실행환경 프레임워크 지정 (파이토치 vs 텐서플로우)')
parser.add_argument('--version',
                    required=False,
                    type=str,
                    default='newest',
                    help='프레임워크 버전 입력')

# 위에서 지정한 parser의 인자값들을 args 에 지정
# 값 : Namespace(framework='pytorch', version='newest')
args = parser.parse_args()

print('실행완료')

📖 실행결과보기

1. 기본실행

python test.py

# 실행결과 (대괄호안의 값은 선택항목 / 대괄호아닌건 필수항목)
>> usage: test.py [-h] --framework FRAMEWORK [--version VERSION]
>> test.py: error: the following arguments are required: --framework

2. -h 옵션 사용하여 실행

python test.py -h

# 실행결과
>> usage: test.py [-h] --framework FRAMEWORK [--version VERSION]

>> 테스트용 파서입니다.

>> optional arguments:
  -h, --help            show this help message and exit
  --framework FRAMEWORK
                        실행환경 프레임워크 지정 (파이토치 vs 텐서플로우)     
  --version VERSION     프레임워크 버전 입력

3. 필수 인자 기입하여 실행

python test.py --framework=pytorch

>> 실행완료 

📕 ConfigParser 이해하기

config 파일을 불러오는 파이썬 내장 라이브러리

import configparser
config = configparser.ConfigParser()
config.read('config 파일명.ini')

📖 Config 파일 만들기

import configparser

# config instance 생성
config  = configparser.ConfigParser()

# DATA 섹션생성
config['DATA']={}

# DATA 섹션에 값 기입
config['DATA']['class_name']='Transformer'
config['DATA']['name']='TR'
config['DATA']['version']='1.1'

# MODEL 섹션생성
config['MODEL']={}

# MODEL 섹션에 값 기입
config['MODEL']['num_heads']='8'
config['MODEL']['mlp_dim']='512'
config['MODEL']['num_layers']='6'

# 저장
with open('test_config.ini','w') as configfile:
    config.write(configfile)

📖 config 파일 읽기

import configparser

config = configparser.ConfigParser()
config.read('test_config.ini')

print(config.sections())
>> ['DATA', 'MODEL']

print(config['DATA']['class_name'])
>> 'Transformer'
print(config['DATA']['version'])
>> '1.1'

📕 argparse & configparser 같이 쓰기

import argparse
import configparser

# parser 지정
parser = argparse.ArgumentParser()
parser.add_argument('config_file',
					type=str,
                    help='사용할 configfile 경로 지정')
                    
args = parser.parse_args()

# config 지정
config = configparser.ConfigParser()
config.read(args.config_file)

class_name = config['DATA']['class_name']
version = config['DATA']['version']

print(class_name)
print(version)
# 실행 
python test.py test_config.ini
>> 'Transformer'
>> '1.1'

📚 Reference

https://brownbears.tistory.com/413
document link

profile
인공지능 4년차 개발자입니다.

0개의 댓글