問題タブ [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.

0 投票する
0 に答える
50 参照

python - 必須引数を無効にするパーサーにオプションの引数を宣言する方法は?

タイトルは紛らわしいかもしれませんが、これ以上の説明は思いつきません。基本的に、オプションの引数の束を持ついくつかの入力ファイルで動作するプログラムがあります。私のプログラムでは、入力ファイルは必須です。そこで、次のようなパーサーを書きました。

test.py

簡単にするために、すべてのオプションを示しているわけではありません。ここで、入力ファイルを必要とせず、単独で実行される機能をこのプログラムに追加したいと考えています。このオプションを と呼びましょうa。Optionaの引数の数が不明であるか、--debugまたは他のオプションが option に対して無効ですa。したがって、以下は私のプログラムの有効な実行になります。

そして、これらは無効になります:

この行をコードに追加すると

オプションを受け入れますaが、理解できる理由から「ファイルが必要です」と表示されます。では、目標を達成するためにコードをどのように変更すればよいでしょうか?

PS: subparser も試してみましたが、私の知識不足のためか、思うように動作させることができませんでした。

0 投票する
0 に答える
52 参照

python-3.x - argparse: サブパーサーのカスタム ヘルプ テキストを指定する方法は?

argparseunderを使用してpython3、サブパーサーのヘルプ テキストとサブサブパーサーのヘルプ テキストをカスタマイズした方法で設定しようとしています。次のサンプル プログラムは、私の問題を示しています (サンプル プログラムのソース コードは、このメッセージの下部に表示されます)。このサンプル プログラムは、次のように実行する必要があります。

argtest cmd [ ... args ... ] または argtest special subcmd [ ... args ... ] 、「cmd」は「cmd00」、「cmd01」など、「subcmd」は「sub00」、「sub01」などです。

のように実行するとargtest cmd00 -h、「cmd00」コマンドの特定のヘルプが表示されます。のように実行するとargtest special sub00 -h、「sub00」特殊コマンドの特定のヘルプが表示されます。

ただし、これらのヘルプ値が得られません。以下のコードを考えると、このコマンドを実行すると:

...次の出力が得られます。

ただし、私が欲しいのは次のとおりです。

同様に、これを実行すると:

...次の出力が得られます。

しかし、私はこれが欲しい:

下位レベルのヘルプ値が無視されるようで、ヘルプは常に最上位レベルのデフォルト ヘルプを使用するように強制され、すべてのサブパーサーのヘルプが生成されます。

サブパーサーのネストされたサブサブパーサーを使用している場合、必要なヘルプ メッセージを取得する方法はありますか? どうもありがとうございました。

サンプルプログラムは次のとおりです。