2/03/2016

[PYTHON] argparse 를 이용한 파이썬 스크립트 Argument 처리하기

저는 CmdLine 툴을 만들면 가장 처음 구상하게 되는것이 바로 Argv 즉 인자값 처리입니다.
전체적인 툴의 흐름과 소개를 담고 있어 먼저 만들게 되는데 Python에서는 argparse라는 라이브러리를 이용해서 쉽게 인자값을 처리할 수 있습니다.

오늘은 argparse를 통해서 스크립트 내 argv를 처리하는 것을 해볼까 합니다.

argparse

먼저 argparse를 import 합니다.

import argparse
이후부터 argparse의 기능을 사용할 수 있으며 argparse를 변수에 할당하여 사용합니다.

import argparse
parser = argparse.ArgumentParser()

pip install argparse


argparse Option 설정

할당받은 argparse에 add_argument를 통해 옵션 리스트를 추가할 수 있습니다.

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--type", help="type options values..zz")
args = parser.parse_args()
add_argmuent를 통해 받은 옵션 명을 명시해주고, help에 설명 부분을 넣어줄 수 있습니다.


argparse Option 동작 구간 설정


import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--type", help="type options values..zz")
args = parser.parse_args()
if args.type:
    print("type")

if 문을 통해서 입력받은 값에 대해 처리할 수 있습니다.
아래 부분에 보면 args.type 값을 보고 값이 있으면 처리하고, 없으면 어떻게 처리할 것인지 지정이 가능합니다.

pydoc에서 정의된 ArgumentParse Object들은 아래와 같습니다.

  • prog - The name of the program (default: sys.argv[0])
  • usage - The string describing the program usage (default: generated from arguments added to parser)
  • description - Text to display before the argument help (default: none)
  • epilog - Text to display after the argument help (default: none)
  • parents - A list of ArgumentParser objects whose arguments should also be included
  • formatter_class - A class for customizing the help output
  • prefix_chars - The set of characters that prefix optional arguments (default: ‘-‘)
  • fromfile_prefix_chars - The set of characters that prefix files from which additional arguments should be read (default: None)
  • argument_default - The global default value for arguments (default: None)
  • conflict_handler - The strategy for resolving conflicting optionals (usually unnecessary)
  • add_help - Add a -h/–help option to the parser (default: True)
  • allow_abbrev - Allows long options to be abbreviated if the abbreviation is unambiguous. (default: True)
[https://docs.python.org/3/library/argparse.html]

Reference

https://docs.python.org/3/howto/argparse.html
https://docs.python.org/3/library/argparse.html


HAHWUL

Security engineer, Gopher and H4cker!

Share: | Coffee Me:

1 comment: