Passion/Python

OptParser 옵션 파싱

sunshout 2006. 10. 16. 00:47
이건 Python 2.3(아마도) 부터 구현된 모듈이다.

쭈노는 커멘드 라인에서 받은 argument 처리는 좀 정리되었으면 좋겠다.

순서에 상관없이 분류할 수 있으면 좋겠고, 모듈기반으로 설계되어 같이 붙이기 좋으면 좋겠다.
이를 위해서 파이슨에서는 OptionParser 모듈을 제공한다. 이를 이용하면 좀더 깔끔한 코딩을 할 수 있다.

from optparse import OptionParser
[...]
def main():
  usage = "usage: %prog [options] arg"
  parser = OptionParser(usage)
  parser.add_option("-f", "--file", dest="filename",
                     help="read data from FILENAME")
  parser.add_option("-v", "--verbose",
                     action="store_true", dest="verbose")
  parser.add_option("-q", "--quiet",
                     action="store_false", dest="verbose")
  [...]
  (options, args) = parser.parse_args()
  if len(args) != 1:
       parser.error("incorrect number of arguments")
  if options.verbose:
       print "reading %s..." % options.filename
  [...]

if __name__ == "__main__":
  main()