問題タブ [argparse]
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 - argparse を使用して "arg= val" 形式の引数を解析する
argparse を使用して、"arg=val" の形式のコマンド ラインを解析したいたとえば、使用法は次のようになります。
それを達成するために、私はこれをやっています:
しかし、問題は、スクリプトを次のように呼び出すと、次のようになることです。
私は得る:
私が期待するところ
質問は、argparse を使用して、名前と値のペアを含む cmd 行を解析できますか? ヒントはありますか?
編集: --conf_dir=/tmp/good_dir のようなものではなく、これを実行したい理由は、conf_dir=/tmp/good_dir スタイルの引数を使用する他のツール (他の言語で記述) があるためです。一貫性を維持するために、この方法で引数を解析する必要がありました。
python - 依存関係と競合があるpythonargparseサブコマンド
argparseを使用して、サブコマンドを使用してツールを作成したいと思います。可能な構文は次のとおりです。
/tool.pyダウンロード-1234から--interval60
/tool.pyダウンロード--build1432
/tool.py clean --numbers 10
したがって、argparseを使用して実装したいと思います。
- '--from'と'--interval'が常に一緒に使用されるようにします
- '--build'が他の引数と一緒に使用されないようにする
しかし、「-from」と「--internal」をグループにペアリングして、グループを「--build」と相互に排他的にする方法が見つかりませんでした。
以下は私の現在のコードであり、「-from」と「--build」を相互に排他的にするだけです。'--from'と'--interval'が一緒になることを保証することも、'--interval'と'--build'が相互に排他的であることを保証することもありません。
例えば、
/tool.pyダウンロード-1234から
'--from'は'--interval'と連動する必要があるため、許可しないでください。しかし、私のコードはそれを黙って受け入れます。
と
/tool.pyダウンロード--interval1234--build 5678
'--build'は他の引数と一緒に使用できないため、許可しないでください。しかし、私のコードもそれを受け入れます。
任意の提案をいただければ幸いです。ありがとう。
python - Argparse-デフォルトのサブコマンドを指定する方法
Python 2.7のargparseパッケージを使用して、コマンドラインツールのオプション解析ロジックを記述しています。ツールは、次のいずれかの引数を受け入れる必要があります。
「ON」:機能をONにします。
「OFF」:機能をオフにします。
[引数は提供されていません]:関数の現在の状態をエコーします。
argparseのドキュメントを見ると、これら3つの状態は相互に排他的であり、異なる概念的なアクティビティを表すため、2つ(場合によっては3つ)のサブコマンドを定義する必要があると思いました。これは私の現在のコードの試みです:
func=print_state
0個の引数を指定するとメインパーサーが設定され、1個の引数を指定するとメインパーサーが適切なサブコマンドのデフォルトを使用してを呼び出すという印象を受けましたfunc=set_state
。代わりに、引数が0の場合に次のエラーが発生します。
また、「OFF」または「ON」をprint_state
指定すると、の代わりに呼び出されset_state
ます。parser.set_defaults
行をコメントアウトすると、set_state
正しく呼び出されます。
私はジャーニーマンレベルのプログラマーですが、Pythonの初心者です。これを機能させる方法について何か提案はありますか?
編集:私がサブコマンドを見ていましたもう1つの理由は、将来的に検討している潜在的な4番目の関数でした。
"FORCE txtval":関数の状態を。に設定しますtxtval
。
python - argparseがリストインリストを表示するのはなぜですか?
argparseの動作に気づき、戸惑いました(これまで、ファイルのダムリストに使用したことはなかったと思います)。
これにより、次の出力が得られます。
私は、リスト内のリストではなく、であると期待multi
していました。['foo', 'bar', 'baz']
現状では、処理する前につかむ必要がありますargs.multi[0]
。これは大したことではありませんが、醜い疣贅のように感じます。なぜそこにあるのかを理解したいと思います。
私は愚かなことをしているのですかadd_argument
、それともこれは避けられない癖ですか?
python - Pythonargparseオプションのサブ引数
いくつかの必須パラメーターといくつかのオプションパラメーターを持つプログラムへの引数が欲しいのですが。このようなもの:
したがって、これらのいずれかを渡すことができます。
これらは複数存在する可能性があるため、単一のadd_argumentである必要があります。例えば:
私は私が望むものに近い議論を達成することができます:
しかし、完全ではありません。argparseでこれを行う方法はありますか?私はそれらをすべて作成できることを知っていますnargs="*"
が、-helpはオプションの引数の名前をリストしません。nargs="*"
metavarのタプルを渡すと、argparseは例外をスローします。
python - argparse module引数なしでオプションを追加する方法は?
を使用してスクリプトを作成しましたargparse
。
スクリプトはオプションとして構成ファイル名を取得する必要があり、ユーザーはスクリプト全体を続行する必要があるか、スクリプトのみをシミュレートする必要があるかを指定できます。
渡される引数:./script -f config_file -s
または./script -f config_file
。
-f config_fileの部分は問題ありませんが、オプションであり、その後に続くべきではない-sの引数を要求し続けます。
私はこれを試しました:
次のエラーがあります。
そして、''
の代わりに同じエラー0
。
python - Python と argparse を使用した複数の位置引数
argparse を使用して、作業中のプログラムのコマンド ライン引数を解析しようとしています。基本的に、オプションの引数内に広がる複数の位置引数をサポートする必要がありますが、この状況では argparse を機能させることができません。実際のプログラムでは、カスタム アクションを使用しています (位置引数が見つかるたびに名前空間のスナップショットを保存する必要があります) が、私が抱えている問題はappend
アクションで再現できます。
これが名前空間になるようにしたいのですが、これ(a=True, b=True, input=['fileone', 'filetwo', 'filethree'])
を行う方法がわかりません-実際に可能であれば。ドキュメントや Google には、これが可能である場合、何らかの方法でそれが可能であると書かれているものは何も表示されませんが、可能性は十分にあります (可能性は高いですか?) 私は何かを見落としています。誰か提案はありますか?
python - argparse ヘルプ引数リストのフォーマットを制御しますか?
出力:
refを印刷するにはどうすればよいですか。-m MODEL, --model MODEL
オプションを指定してスクリプトを実行すると、別の行に表示されるのではなく、同じ行にモデル-h
が表示されますか?
python - argparse を使用する Python で必要なコマンドライン オプション
コマンドライン引数には次のシナリオがあります。特定のオプションがある場合は、他に必要なオプションがいくつかあるはずです。たとえば、--create がある場合、--name があるはずです。また、--remove がある場合は、--id があるはずです。このシナリオをargparseで実装することは可能ですか? または何か?
python - Pythonでargparseの組み合わせオプションをコーディングする方法
私はこの小さな活動を完了するのに苦労しました。実験をしましたが、結果が出ませんでした。
要件:
使用法または規則:
-c(比較)は2つのパラメーターを取ります。
-v(検証)は1つのパラメーターを取ります。
これら2つのいずれかが存在する必要がありますが、両方が存在することはできません。
- -fは必須パラメーター(出力ファイル名)です。
出力:
以下に示すように、目的の出力を得ることができます。
問題は次のとおりです。
test.py -h
、、
1を使用する場合、出力には、-c / -vのいずれかが必須であるが、両方ではないことが示されません。これは、すべての引数がオプションであることを示しています。
2.出力は、オプションの引数の下に-fオプションを示しますが、これは正しくありません。-fは必須の引数であり、外部に表示したい-オプションの引数。
-hオプションの出力がよりユーザーフレンドリーになるようにスクリプトを変更する方法(外部検証なし)
コード:
私は出力を達成するために以下のコードを使用しています、