ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [python] parser
    Data miner/Developer 2019. 12. 16. 14:56
    728x90

     

    코아일체 : 코딩과 한 몸이 되고 싶은 글쓴이의 간절한 소망

    논문 리뷰 뿐만이 아니라 짤 써진 코드도 꾸준히 눈팅해야 겠다는 마음을 먹고서 시작하게된 포스팅- 오늘 다루고자 하는 내용은 parser에 대한 부분이다. 

     

    Github에서 참고하는 코드를 보면, main 코드 부분에 꼭 argparse를 사용한 부분이 있다. 그리고 이는, 나중에 python 명령 프롬프트 창을 사용하여 main 함수를 실행하는데 있어서  명령 프롬포트에 입력된 인자들을 받아서 각각의 파서 트리에 할당시키는 역할을 하게 된다. 특히, argparse 모듈은 인자를 입력, 파싱하게 해주며, 잘못된 인자 입력시 사용법 설명, 예외 처리까지 해주는 라이브러리다. 아래의 경우를 통해서 이해해보자. 

     

    1) 먼저 argparse.ArgmentParser() 부분은 parser 오브젝트를 생성하게 해준다. 맨 첫 번째에 이뤄져야 하는 부분이다.

    2) 다음으로, add_argument()는 커멘트 명령 줄에서의 인자들을 오브젝트로 바꿔주는 역할을 한다. 아래의 경우네는 source language, target_language, is_train, is_adv와 관련된 인자들을 받을 수 있다. 각각의 code line을 보면, add_argument는 인자의 타입(숫자, 문자열), 디폴트값 지정, 사용법을 저장할 수 있다.

    3) 마지막으로는, parse_arg()를 통해서 파싱이 가능해지는데, 구체적으로는 object를 함수에서 쓸 수 있는 속성값으로 바꿔주거나 일정한 함수 액션을 취하도록 해준다(--is_train 부분에 training mode가 Ture/False인지 전달).

    if __name__ == "__main__":
    
    	parser = argparse.ArgumentParser()
    
    	parser.add_argument('--source_language', type=str, default='en', help='source_language')
    
    	parser.add_argument('--target_language', type=str, default='es', help='target_language')
    
    	parser.add_argument('--is_train', type=str, default=True, help='Training Mode')
    
    	parser.add_argument('--is_adv', type=str, default=True, help='whether to apply adversarial training or not')
    
    	params = parser.parse_args()

    'Data miner > Developer' 카테고리의 다른 글

    [Developer] [node.js] 3.  (0) 2019.12.31
    [Developer] [node.js] 2.  (0) 2019.12.30
    [Developer][node.js] 1. node.js란?  (0) 2019.12.30
    <HTML> <head> <body>  (0) 2019.12.27
    <HTML language> HTML main codes  (0) 2019.12.26
Designed by Tistory.