OptParserの使い方
2013-09-25
QiitaPython#!/usr/bin/env python
# -*- coding:utf-8 -*-
from optparse import OptionParser
if __name__ == '__main__':
""" コマンドエラー時に表示する文字列 """
usage = u'%prog [Args] [Options]\nDetailed options -h or --help'
version = 0.1
parser = OptionParser(usage=usage, version=version)
""" test.py -d 20111201 のように、オプションの後に整数値を入力させたい場合 """
parser.add_option(
'-d', '--date',
action = 'store',
type = 'int', # 受け取る値の型を指定する
dest = 'download_date', # 保存先変数名
help = 'Set date(yyyymmdd) you want to download.(ex.20110811)' # --help時に表示する文(見れば分かるかw)
)
""" 文字列が欲しい場合 (test.py -f hoge.txt) """
parser.add_option(
'-f', '--file',
action = 'store',
type = 'str', # 型指定
dest = 'file_name', # 保存先変数名
help = 'Set filename (ex. hoge.txt)'
)
""" -s を指定した場合、trueを保存する """
parser.add_option(
'-s', '--sleep',
action = 'store_true', # store_trueの場合、Trueが'dest'で指定された変数へ格納される。(false時はstore_false)
dest = 'hoge_flg',
help = 'set sleep flag'
)
""" 各オプションのデフォルト値をセット """
parser.set_defaults(
download_date = None,
file_name = None,
hoge_flg = False
)
""" オプションをパース """
options, args = parser.parse_args()
""" 単純な引数(例: test.py a b)はargs[index]で取得できる """
if len(args) > 0:
for i, v in enumerate(args):
print 'Args[%s] is: %s' % (i, v)
""" オプションで指定した値は options.<変数名>で取得できる """
date = options.download_date
if date:
if len(str(date)) != 8:
# エラーを発生させるときは↓こんな感じ
parser.error('Date must be yyyymmdd')
print 'date: %s, file: %s, sleep: %s' % (options.download_date, options.file_name, options.hoge_flg)
このファイルを –help オプションをつけて実行すると
$ python test.py --help
Usage: test.py [Args] [Options]
Detailed options -h or --help
Options:
--version show program's version number and exit
-h, --help show this help message and exit
-d DOWNLOAD_DATE, --date=DOWNLOAD_DATE
Set date(yyyymmdd) you want to download.(ex.20110811)
-f FILE_NAME, --file=FILE_NAME
Set filename (ex. hoge.txt)
-s, --sleep set sleep flag
from: https://qiita.com/petitviolet/items/c2ba174a153bbdc5ad22