반응형
1. argparse 이용 (argument를 특정해 줌)
# argv_test1.py
import os, sys, pickle
import argparse, sys
parser = argparse.ArgumentParser()
parser.add_argument('-name', help=' : Please set the name')
parser.add_argument('-option', help=' : train or prediction', default='train')
parser.add_argument('-stt_date', help=' : Please set the start date of prediction(default)', default='2021-11-02')
parser.add_argument('-end_date', help=' : Please set the last date of prediction(default)', default='2021-12-02')
args = parser.parse_args()
def main(argv, args) :
print('\n')
print(f'argv : ', argv)
print(f'args : ', args)
print(f'args.name : ', args.name)
print(f'args.option : ', args.option)
print(f'args.stt_date : ', args.stt_date)
print(f'args.end_date : ', args.end_date)
print('\n')
if __name__ == '__main__' :
argv = sys.argv
main(argv, args)
쉘에서 python 파일을 실행시킬 때 인자 명과 인자 값을 차례로 입력해주면서 나아가면 된다.
(base) admin@admin:/jh$ python argv_test1.py -name juhyeon_test -option Yap
argv : ['argv_test1.py', '-name', 'juhyeon_test', '-option', 'Yap']
args : Namespace(end_date='2021-12-02', name='juhyeon_test', option='Yap', stt_date='2021-11-02')
args.name : juhyeon_test
args.option : Yap
args.stt_date : 2021-11-02
args.end_date : 2021-12-02
인자에 미리 설정해 뒀던 도움말 옵션을 보고싶다면!
(base) admin@admin:/jh$ python argv_test1.py -h
usage: argv_test1.py [-h] [-name NAME] [-option OPTION] [-stt_date STT_DATE] [-end_date END_DATE]
optional arguments:
-h, --help show this help message and exit
-name NAME : Please set the name
-option OPTION : train or prediction
-stt_date STT_DATE : Please set the start date of prediction(default)
-end_date END_DATE : Please set the last date of prediction(default)
2. sys.argv (argument의 순서대로 인식)
# argv_test2.py
import os, sys, pickle
import argparse, sys
def main(argv) :
print('\n')
print(f'argv : ', argv)
print('\n')
if __name__ == '__main__' :
argv = sys.argv
main(argv)
(base) admin@admin:/jh$ python argv_test2.py juhyeon_test Yap 2021-11-02 2021-12-02
argv : ['argv_test2.py', 'juhyeon_test', 'Yap', '2021-11-02', '2021-12-02']
실제로 사용을 하게 되면 첫 번째 방법을 사용 할 것 같다. 인자를 순서대로 인식 시키는 것은 코드가 잘못 돌아갈 확률이 너무 높을 것 같다. 따라서 argument를 명확하게 지정해 주는 첫 번째 방법으로 평소에 잘 활용하자.
반응형
'Development > Python' 카테고리의 다른 글
[Python] Array를 Bar Plot으로 print 하기 (0) | 2021.12.15 |
---|---|
[Python] Dictionary Key, Value Swap (딕셔너리 키 밸류 전환) (0) | 2021.12.15 |
[Docker] Container 내에서 Jupyter Notebook 띄우기 (0) | 2021.11.15 |
[Python] Dictionary의 key를 list로 변환하기 (0) | 2021.10.22 |
[Python] 판다스 데이터프레임 전체 프린트(Pandas DataFrame Print) (0) | 2021.10.22 |
댓글