たなちの備忘録

自分の知識をストックしていくためのブログ

argparseとは?pythonでコマンドライン引数にサブコマンドを設定する方法

スポンサーリンク

argparseとは?

Python 標準ライブラリの一部であり、コマンドライン引数の解析モジュール。
ヘルプと使用方法メッセージを生成し、ユーザーが不要な引数をプログラムに指定したときにエラーを発生させる。
参考文献:
Argparse チュートリアル — Python 2.7.14 ドキュメント

位置指定引数、optional引数なんかを設定できる。

ほぼ何もしない簡単な例

何も設定しなくても、helpだけは出力される。

prog.py

import argparse
parser = argparse.ArgumentParser()
parser.parse_args()

実行結果

$ python prog.py --help
usage: prog.py [-h]

optional arguments:
-h, --help show this help message and exit
位置指定引数

prog.py

import argparse
parser = argparse.ArgumentParser()
#違いは下3行、echoとは文字を出力させるコマンドの意
parser.add_argument("echo", help="echo the string you use here")
args = parser.parse_args()
print args.echo

helpにヘルプメッセージを記載

$ python prog.py -h
usage: prog.py [-h] echo

positional arguments:
echo echo the string you use here

optional arguments:
-h, --help show this help message and exit
$ python prog.py foo
foo
計算プログラム

argparseは与えられたオプションを文字列として認識するのでadd_argument()でintとして認識させる。

prog.py

import argparse
parser = argparse.ArgumentParser()
parser.add_argument("square", help="display a square of a given number",
type=int)
args = parser.parse_args()
print args.square**2

実行結果

$ python prog.py 4
16


以下、作成中…

サブパーサーの設定

15.4. argparse — コマンドラインオプション、引数、サブコマンドのパーサー — Python 2.7.14 ドキュメント

subparsers = parser.add_subparsers(help='commands', dest='command')
ヘルプ出力内のサブパーサーグループのヘルプ:commands
サブコマンド名配下に格納される属性の名前:command

actionの説明
http://docs.python.jp/2.7/library/argparse.html?highlight=argparse#action