Python3学習まとめ - argparse.ArgumentParser()
2022-02-23 20:45:43
@ TOC
アーグパース 公式チュートリアル
<ブロッククオートこの記事は、学んだことを後で復習するためだけのものです
argparseモジュールを使うと、ユーザーフレンドリーなコマンドラインインターフェイスを簡単に書くことができます。プログラムは必要な引数を定義し、argparse は sys.argv からそれらの引数を解析する方法を見つけます。argparseモジュールはまた、自動的にヘルプとマニュアルを生成し、ユーザがプログラムに無効な引数を渡したときにエラーメッセージを出します。このモジュールはPython標準ライブラリの中で推奨されるコマンドラインパースモジュールです。
使用方法
-
パーサーの作成
ArgumentParserオブジェクトを作成します。
ArgumentParser オブジェクトは、コマンドラインを Python のデータ型にパースするために必要なすべての情報を含んでいます。parser = argparse.ArgumentParser(description='Process some integers.')
-
引数の追加
add_argument()メソッドを呼び出して、ArgumentParserオブジェクトにプログラムが必要とする引数の情報を追加します。
integers は 1 個以上の整数のリストで、umulate はコマンドラインで --sum 引数が指定された場合は sum() 関数で、それ以外は max() 関数になります。parser.add_argument('integers', metavar='N', type=int, nargs='+', help='an integer for the accumulator') parser.add_argument('---sum', dest='accumulate', action='store_const', const=sum, default=max, help='sum the integers (default: find the max)')
-
パラメータのパース
parse_args() メソッドによるパラメータのパース。
スクリプトでは、parse_args()は通常引数なしで呼ばれ、ArgumentParserはsys.argvから自動的にコマンドライン引数を決定します。parser.parse_args(['---sum', '7', '-1', '42']) Namespace(accumulate=<built-in function sum>, integers=[7, -1, 42])
ArgumentParserオブジェクト
class argparse.ArgumentParser(prog=None, usage=None, description=None, epilog=None, parents=[], formatter_class=argparse.HelpFormatter, prefix_chars='-', fromfile_prefix_chars=None, argument_default=None, conflict_handler='error', add_help=True, allow_abbrev=True)
パラメータの説明。
- prog - プログラムの名前 (デフォルト: sys.argv[0]) usage - プログラムの用途を説明する文字列 (デフォルト: パーサーに追加された引数から生成されます)
- description - 引数のヘルプファイルの前に表示されるテキスト (デフォルト: なし)
- epilog - パラメータのヘルプファイルの後に表示されるテキスト (デフォルト: なし).
- parents - 引数も含めるべき ArgumentParser オブジェクトのリストです。
- formatter_class - ヘルプドキュメントの出力形式をカスタマイズするためのクラスです。
- prefix_chars - オプションのパラメータに付けるプレフィックス文字のセット(デフォルトは '-' ).
- fromfile_prefix_chars - 追加のパラメータをファイルから読み込む必要がある場合に、ファイル名を識別するためのプレフィックス文字のセット (デフォルト: なし)
- argument_default - 引数のグローバルなデフォルト値 (デフォルト: なし)
- conflict_handler - 競合するオプションを解決するための戦略(通常は不要)。
- add_help - パーサーに -h/-help オプションを追加します (デフォルト: True)
- allow_abbrev - 省略形が曖昧でない場合に abbreviate long オプションを許可する (デフォルト: True)
add_argument() メソッド
ArgumentParser.add_argument(name or flags... [, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest])
パラメータの説明。
- name または flags - foo または -f, --foo のような、名前付きまたはオプション文字列のリスト。
- action - 引数がコマンドラインに表示されたときに使用される基本的な動作の種類。
- nargs - 消費されるべきコマンドライン引数の数。
- const - いくつかのアクションとnargsによって選択されるために必要な定数です。
- default - 引数がコマンドラインに表示されない場合に使用する値です。
- type - コマンドライン引数が変換されるタイプ。
- choices - 利用可能なパラメータを格納するコンテナです。
- required - このコマンドラインオプションが省略可能かどうか(オプションのみ使用可能)。
- help - このオプションが何をするのかについての簡単な説明。
- metavar - 使用方法メッセージで使用するパラメータ値の例です。
- dest - parse_args() が返すオブジェクトに追加される属性の名前です。
3.8 新機能を追加しました。
また、Actionのサブクラスや同じインターフェイスを実装した他のオブジェクトを渡すことで、任意のアクションを指定することも可能です。推奨される方法は、Action を拡張して
コール
メソッドと、オプションの
イニット
メソッドを使用します。
parse_args() メソッド
ArgumentParser.parse_args(args=None, namespace=None)
引数の説明。
- args - パースする文字列のリスト。デフォルト値は、sys.argvから取得されます。
- namespace - プロパティを取得するためのオブジェクト。既定値は、新しい空の Namespace オブジェクトです。
関連
-
[解決済み】pygame.error: ビデオシステムが初期化されていない
-
[解決済み] builtins.TypeError: strでなければならない、bytesではない
-
[解決済み】Pythonエラー - IDLEのサブプロセスは接続を作成しませんでした。IDLEが起動できないか、個人のファイアウォールソフトが接続をブロックしています。
-
[解決済み] argparseによるブーリアン値のパース
-
[解決済み] TypeError: write() の引数は bytes ではなく str でなければならない (Python 3 vs Python 2 )
-
[解決済み] numpy/scipy/ipython:Failed to interpret a file as a pickle
-
[解決済み] bash: 予期しないトークン `(' の近辺でシンタックスエラーが発生 - Python
-
[解決済み] ValueError("color kwarg must have one color per dataset")?
-
[解決済み] ValueError: 形状(3,1)の非ブロードキャスト出力オペランドは、ブロードキャスト形状(3,4)に一致しない。
-
AttributeError: 'str' オブジェクトに 'get' 属性がない。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Evidentlyを用いたPythonデータマイニングによる機械学習モデルダッシュボードの作成
-
[解決済み】TypeError: int() の引数は文字列、バイトのようなオブジェクト、または数値でなければならず、'list' ではありません。
-
[解決済み】pip-compileは何をするのですか?どのような使い道がありますか?
-
[解決済み】re.subが "Expected string or bytes-like object "でエラーになる。
-
[解決済み] Python 3: 星付き式でリストを展開する
-
[解決済み] AtributeError: 'module' オブジェクトに 'plt' 属性がない - Seaborn
-
[解決済み] numpy ValueError 形状が整列していない
-
Python ランタイムエラーに対する解決策 '__main__' モジュールが 'xxx' で見つかりません。
-
依存関係のインストール時の python エラー: pip install -r requirements.txt
-
ModuleNotFoundError: utils'という名前のモジュールがありません。