問題タブ [subparsers]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Python argparse サブパーサーの有効な使用法?
argparse ライブラリを使用してコマンドを作成する予定です。これが私のコマンド構造です。
ここで、ローカルには、ローカルコミット、ローカル追加などの複数のコマンドがグループ化されています。たとえば、[-d my_address] はメインで解析され、ローカル差分の後のすべてのスイッチは、ローカル差分に対して実行される関数によって一緒に解析されます。
同様に、ローカルに対応する別のコマンド グループがあります。グローバルと言います。
スイッチ -d は -r と混在していません。そのため、-r を解析するパーサーは -d を認識せず、その逆も同様です。
argparse を使用してこれを実装することは可能ですか? はいの場合、誰かがこれを行うための大まかなアルゴリズムを提案できますか? いいえの場合、Pythonでこれを行う他の方法は何ですか? ありがとう。
python - 「--name」や「-n」のように(Python argparseから)サブパーサーに名前を付けることは可能ですか?
argparse
メーラー スクリプト用の Unix スタイルの引数解析を作成する必要があるため、作業を開始しました。
ファイル名メーラーを提供する「auto」オプションを使用すると、ファイル名として受信したスクリプトを実行し、準備されたメールを取得して送信するだけです。2 番目のモード--manual
では、任意のメールを最初から作成できる必要があります。コンテンツとして 1 つのファイル、いくつかの添付ファイル、メーリング リストを提供するためのいくつかのオプションです。私は本当にそこで--long_opt
慣習を使いたかったのですが (そして多分それ-short_opt
も)、理解できればサブパーサーを使うべきです。
サブパーサーのような名前を付けることは可能です'--name'
か'-n'
? 今のところ、そうではないと思います-エラーがあります。
使用例:
広告。4) ALL_DEVELOPERS は文字列または整数 (データベース内のグループのキー) です。
以下のコード:
それは素晴らしいことですが、ここで解析する多くの引数が必要であり (すべてが必要になります)、2 番目のオプションでは、すべての作業を行うスクリプトを含むファイルへのパスが 1 つだけ必要です。
私が持っているもの:
それが不可能な場合は、_parse_known_args_ 関数を使用する必要がありますか、それとも名前を「手動」と「自動」のままにしておくのは悪い考えですか?
python - デフォルト値と必須の Argparser
パーサーの1つにデフォルト値が必要であり、必須でもあるargparserを構築しようとしています。これまでのところ、次のものがあります。
CLI から実行すると、エラーが発生します。
--type
CLIに含めていないので、これがなぜ出てくるのかがわかります。そして、それが私が達成したいことです。CLI にパーサー オプションを含めなくても、デフォルトが設定されます。
とにかくこれを実行するには?
python - Argparse: 複数のサブコマンドを解析します
いくつかの調査を行いましたが、有効な解決策が見つかりませんでした。次のコマンド ラインを解析しようとしています。「test」と「train」は、それぞれ異なる引数を持つ 2 つの独立したサブコマンドです。
2 つのサブパーサー (「test」、「train」) を使用してみましたが、一度に解析できるのは 1 つだけのようです。また、これらのサブパーサーをメイン パーサーの親にすることもできます。たとえば、コマンド '-a' をサブパーサー 'train' と 'test' の両方に追加する必要はありません。
解決策はありますか?
python - 他のパラメーターによって暗示される argparse サブパーサー
通常、サブパーサーを定義する方法は次のとおりです。
サブパーサーは次のように呼び出されます
多数のコンバーターを呼び出すパッケージを実装しています。通常のサブパーサーのアプローチを使用する場合、私はしなければならないでしょう
ユーザーが電話をかける可能性があるため、これは反復的でエラーが発生しやすいものです。
ユーザーがコマンドを使用できるように、サブパーサーがマスターパーサーから自動的に決定されることを強く望みます
andはandからargparse
サブパーサーを決定し、そのサブパーサーを呼び出してparse します。もちろん、ここはサブパーサー固有です。ext1_to_ext2
file.ext1
file.ext2
ext1_to_ext2
EXTRA
EXTRA
各コンバーター ( add_argument_group
) にパラメーターのグループを使用しようとしましたが、引数グループのパラメーターは重複できず、すべてのパーサーから結合された引数の乱雑なリストを取得したため、サブパーサーを使用する方法のようです。
2 つの位置引数を使用して、適切なサブパーサーを決定して使用し、残りの引数を解析しようとしましparse_known_args
たが、ヘルプ メッセージからコンバーターとその引数のリストをユーザーに提供するのは困難です。
これを行う方法はありますか?
python - Python argparse: ヘルプ文字列でサブパーサー プログラムの名前を取得する
さまざまなサブパーサーを備えた Python モジュールの引数パーサーを作成しています。私の目的は、Argument コンストラクターが複数の子に渡される共有される引数を持つことです。
望ましい出力は次のようになります
この正確な設定を使用すると、ヘルプ文字列のmaster prog1
代わりに. 目的の結果を得るには、マークされた行で何を変更する必要がありますか?prog1
foo
#Line of interest