Python3でコマンドライン引数を便利に使いたいと思いました。
すると公式に便利なパーサーがあるというではありませんか。(3.2以降)
16.4. argparse — コマンドラインオプション、引数、サブコマンドのパーサー — Python 3.5.1 ドキュメント
とても便利。
とりあえず、引数とtypeとdefaultとhelpについてはよくわかった。他も必要になれば理解していこう。
こんな感じで使う
import argparse
# 準備
parser = argparse.ArgumentParser(description='A description for my process') # ArgumentParserオブジェクトの生成
parser.add_argument('query', help='a query') # こうすると必須になる
parser.add_argument('-a', '--aparameter', type=int, default=100,
help='a parameter for my process') # オプション引数になる
# パース
args = parser.parse_args()
# 結果を辞書に
params = vars(args)
# 取り出し
query = params['query']
aparameter = params['aparameter']
# 引数を使ってあれこれする
do_something(query, aparameter)
なお、
python3 FILENAME.py -h
すれば、ヘルプが表示される。-hは--helpでもいい。
sys.argvを使う手もある
そこまでしっかり引数を管理しないとか、自分で実装したいならsys.argvが楽。
引数付きで起動した時は、sys.argv[1]以降に引数の要素が入っている。
import sys
def example_arguments():
# ファイル以外の引数部を取得する
args = sys.argv[1:]
print('Show arguments:'.center(40, '-'))
print('\n'.join(args))
print('End arguments'.center(40, '-'))
実行すると以下の出力を得られる
$ python example.py first second third fourth 5
-------------Show arguments-------------
first
second
third
fourth
5
-------------End arguments--------------
これで得られる引数は全てstrなので、必要な型が数値なら変換が必要。
コメント