[컴][파이썬] OptionParser

파이썬 command line / python command line option / option parser / python simple console command line parser / easy to make command line script with python





OptionParser


자주 사용하는 듯 해서 대략적인 정리를 해 놓는다. source 는 ref. 1 에서 가져왔다.
알고보니(그러니 문서를 잘 읽어야지 ㅜㅜ) OptionParser 가 deprecated 되고, ArgumentParser 로 넘어갔다.

ArgumentParser 는 아래 post 에 정리했다.

이 글은 아까워서 그냥 둔다.

Simple Code


from optparse import OptionParser
...
usage = "usage: %prog [options] arg"
parser = OptionParser(usage=usage, version="%prog 1.0")
parser.add_option("-f", "--file", dest="filename", type="string",
                  help="write report to FILE", metavar="FILE")
parser.add_option("-q", "--quiet",
                  action="store_false", dest="verbose", default=True,
                  help="don't print status messages to stdout")
parser.set_defaults(verbose=True)
(options, args) = parser.parse_args()
if len(args) != 1:
    parser.error("incorrect number of arguments")
if options.verbose:
        print "reading %s..." % options.filename
    ...




아래처럼 test 해볼 수 있다.
args = ["-f", "foo.txt"]
(options, args) = parser.parse_args(args)

>>>> print(options.filename)
foo.txt


help

위와 같은 code 는 아래와 같은 help message 를 뿌려준다.

Usage: <yourscript> [options]

Options:
  -h, --help            show this help message and exit
  -f FILE, --file=FILE  write report to FILE
  -q, --quiet           don't print status messages to stdout



version

OptionParser 에 version parameter 를 사용하면 OptionParser 가 자동으로 --version option 을 추가하게 된다.




add_option 의 parameter

  • dest : 변수이름, argument 가 저장될 변수이름
  • help : option 에 대한 help message
    • help message 안에서 사용할 수 있는 변수들, 대체로 %로 시작한다.
      • %default
      • %prog
  • metavar : help message 에서 argument 를 표현할 때 쓰임
  • default : dest 에 대한 default 값을 표현한다. 이것보다는 parser.set_defaults(my_dest=True) 를 사용하는 것이 좀 더 명확하다.
  • action : store 가 default 이다.
    • store : argument 를 저장
    • store_true : option 이 설정되면 그것을 true 로 저장
    • store_false : option 이 설정되면 그것을 false 로 저장 
    • store_const : constant value 를 저장
    • append : argument 를 list 에 append
    • count : counter 를 하나 증가시킴
    • callback : 특정 callback function 을 호출
  • type
    • int
    • float
    • string
    • complex
    • choice




References

  1. 15.5. optparse — Parser for command line options — Python 2.7.13 documentation
  2. cpython: fb27b7141de0 Lib/optparse.py


댓글 없음:

댓글 쓰기