差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
python:argparse [2019/06/14 20:37] – mumeiyamibito | python:argparse [2019/06/26 13:17] (現在) – [基本] mumeiyamibito | ||
---|---|---|---|
行 7: | 行 7: | ||
===== 使い方 ===== | ===== 使い方 ===== | ||
+ | ==== 基本 ==== | ||
+ | |||
* 手順 | * 手順 | ||
- import で argparse モジュール読み込み | - import で argparse モジュール読み込み | ||
行 58: | 行 60: | ||
* 指定することにより、受け取った引数を型変換する | * 指定することにより、受け取った引数を型変換する | ||
* 今回の場合は、整数型の引数を変数で受け取ることができる | * 今回の場合は、整数型の引数を変数で受け取ることができる | ||
- | * '' | + | * '' |
* '' | * '' | ||
* オプションでフラグにするような場合 (引数が不要の場合) に使う | * オプションでフラグにするような場合 (引数が不要の場合) に使う | ||
* '' | * '' | ||
* '' | * '' | ||
- | * | ||
* '' | * '' | ||
+ | |||
+ | ==== ヘルプ表示の時に引数をグループでまとめる場合 ==== | ||
+ | * ヘルプ表示を分かりやすくするため、引数をグループでまとめる場合は、'' | ||
+ | parser = argparse.ArgumentParser(description = " | ||
+ | |||
+ | group_a = parser.add_argument_group(" | ||
+ | group_a.add_argument(" | ||
+ | group_a.add_argument(" | ||
+ | |||
+ | group_b = parser.add_argument_group(" | ||
+ | group_b.add_argument(" | ||
+ | |||
+ | args = parser.parse_args() | ||
+ | </ | ||
+ | * '' | ||
+ | * 上記のヘルプを表示した場合、下のように表示される。\\ < | ||
+ | $ test.py --help | ||
+ | usage: test.py [-h] foo bar hoge | ||
+ | |||
+ | test | ||
+ | |||
+ | optional arguments: | ||
+ | -h, --help | ||
+ | |||
+ | Group A: | ||
+ | foo help message for foo | ||
+ | bar help message for bar | ||
+ | |||
+ | Group B: | ||
+ | hoge help message for hoge | ||
+ | </ | ||
+ | |||
+ | ==== いずれかのオプションのみ有効にする場合 ==== | ||
+ | * 引数 A を指定した時は引数 B を無効、あるいはその逆といった引数を指定したい場合は、'' | ||
+ | parser = argparse.ArgumentParser(description = " | ||
+ | |||
+ | group = parser.add_mutually_exclusive_group() | ||
+ | group.add_argument(" | ||
+ | group.add_argument(" | ||
+ | |||
+ | args = parser.parse_args() | ||
+ | </ | ||
+ | * 引数をグループでまとめる '' | ||
+ | * 追加する引数はオプション引数であることが必須。 | ||
+ | * いずれかの引数を必須項目にしたい場合は、引数にそれぞれ '' | ||
===== Tips ===== | ===== Tips ===== | ||
==== 特定のオプション引数が使用された場合に別のオプションを必須にする ==== | ==== 特定のオプション引数が使用された場合に別のオプションを必須にする ==== | ||
- | * オプション A が指定された場合に、オプション B を必須にする場合 | + | * オプション A が指定された場合に、オプション B を必須にする場合 |
+ | * A と B は必須ではない | ||
+ | * A が指定された時に B が必須になる (A、B → True / A → False) | ||
+ | * B は単独で利用できる (B → True) | ||
+ | * コード\\ <code python> | ||
import argparse | import argparse | ||
import sys | import sys | ||
- | parser = argparse.ArgumentParser(description = " | + | parser = argparse.ArgumentParser(description = " |
parser.add_argument(" | parser.add_argument(" | ||
parser.add_argument(" | parser.add_argument(" | ||
行 77: | 行 127: | ||
args = parser.parse_args() | args = parser.parse_args() | ||
</ | </ | ||
- | * やっていることは、引数を sys.argv で取ってきて、その引数の中にトリガーとなる '' | + | * やっていることは、引数を sys.argv で取ってきて、その引数の中にトリガーとなる '' |
* 参考サイト: | * 参考サイト: | ||