argparseの使い方とoptparseとの違い
2014-01-16
QiitaPython以前、OptParser の使い方として記事を書いたが、どうやら argparse.ArgumentParser の方がなういらしい
なので argparse.ArgumentParser の使い方のメモ
# -*- coding:utf-8 -*-
from optparse import OptionParser
from argparse import ArgumentParser
if __name__ == '__main__':
""" コマンドエラー時に表示する文字列 """
desc = u'{0} [Args] [Options]\nDetailed options -h or --help'.format(__file__)
# %progは出力できない
# usage = u'%prog [Args] [Options]\nDetailed options -h or --help'
parser = ArgumentParser(description=desc)
# _parser = OptionParser(usage=usage, version=1.0)
# 文字列
parser.add_argument(
'-q', '--query',
type = str, # 受け取る値の型を指定する
dest = 'query', # 保存先変数名
required = True, # 必須項目
help = '検索する単語' # --help時に表示する文
)
# _parser.add_argument(
# '-q', '--query',
# action = 'store',
# type = 'str', # 受け取る値の型を指定する
# dest = 'download_date', # 保存先変数名
# help = '検索する単語' # --help時に表示する文
# )
# 数値
parser.add_argument(
'-w', '--worker',
type = int,
dest = 'worker',
default = 1,
help = 'マルチプロセス数'
)
# 真偽値
parser.add_argument(
'-b', '--bool',
action = 'store_true', # store_trueでdestにTrueがはいる(store_falseもある)
dest = 'bool'
)
# """ 各オプションのデフォルト値をセット """
# _parser.set_defaults(worker = 1)
""" オプションをパース """
args = parser.parse_args()
# _options, _args = _parser.parse_args()
""" オプションで指定した値は args.<変数名>で取得できる """
query, worker, bool = args.query, args.worker, args.bool
# query, worker, bool = _options.query, _options.worker, _options.bool
if worker > 100
# エラーを発生させるときは↓こんな感じ
parser.error('プロセスが多すぎます')
print args
optparse も argparse もそんなに変わらないと思う 細かな所が変わっているのと、argparse には色々機能が追加されているみたいだが、基本的にはこの程度で十分だと思う
###参考 http://docs.python.jp/2/library/argparse.html
from: https://qiita.com/petitviolet/items/b8ed39dd6b0a0545dd36