問題タブ [optparse]
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 - コマンドライン オプションが optparse または argparse で複数回指定されたかどうかを検出する
Python optparse では、通常、ユーザーがオプションを複数回指定することを許可し、最後のオプション以外のすべてのオプションを黙って無視します。たとえば、オプションのアクション--foo
がstore
で、オプションのアクション--flag
が store_const
、store_true
またはstore_false
の場合、次のコマンドは同等になります。
(更新: argparse はデフォルトで同じことを行います。)
現在、私には多くのオプションがあり、それらのいずれかを複数回指定しても意味がありません。ユーザーが同じオプションを複数回指定した場合、エラーの可能性について警告したいと思います。
複数回指定されたオプションを検出する最もエレガントな方法は何ですか? 同じオプションに、短い形式、長い形式、省略された長い形式を含めることができることに注意してください (したがって、-f
、--foobar
、--foob
および--foo
はすべて同じオプションです)。同じデスティネーションを持つ複数のオプションが同時に指定された場合を検出できればさらに良いでしょう。ユーザーが両方--quiet
を指定した場合に警告を発し、--verbose
両方のオプションが同じデスティネーションに値を格納し、効果的に実行できるようにします。互いにオーバーライドします。
更新: よりユーザーフレンドリーにするために、警告はコマンドラインで使用される正確なオプション名を参照する必要があります。append
の代わりにアクションを使用することstore
は可能ですが、競合を検出した場合、どのオプションがそれを引き起こしたかを判断できません ( -q
and--verbose
または--quiet --quiet
?)。
残念ながら、私は optparse に固執しており、Python 2.6 をサポートする必要があるため、argparse を使用できません。
PSargparseでのみ機能するソリューションを知っている場合は、それも投稿してください。外部依存関係の数を最小限に抑えようとしていますが、Python 2.6 で argparse を使用することはまだオプションです。
python - argparseとoptparseの両方をサポートする方法は?
私は、Python 2.7以降を使用するかなり最近のLinuxディストリビューションだけでなく、Python2.7にまだ切り替えていないCentOSおよびScientificLinuxボックスでも実行される小さなアプリケーションを持っています。optparse
はPython2.7で非推奨になりました。率直に言って、私はサポートしたくありません。optparse
そのため、私はこのアプリケーションをargparse
念頭に置いて開発しました。ただし、argparse
これらの古いディストリビューションには存在しません。さらに、システム管理者はのバックポートをインストールすることをかなり疑っていargparse
ます。
さて、それは私がすべきですか?固執しoptparse
ますか?両方のライブラリの周りにまだ別のラッパーを書きますか?argparse
システム管理者とユーザー(ほとんどの場合、アプリケーションを起動できるだけです)にバックポートをインストールするように説得しますか?
python - Python argparseは認識されない引数を無視します
古いバージョンの Optparse は、認識されない引数をすべて無視して続行します。ほとんどの場合、これは理想的ではなく、argparse で変更されました。しかし、認識されていない引数を無視して、指定した引数を解析したい状況がいくつかあります。
例えば:
とにかくこれを上書きすることはありますか?
ruby - 両方のパラメーター オプションをコマンドとして受け入れるように optparse を構成するにはどうすればよいですか?
コマンド ライン アプリのオプションを解析するためにRuby のoptparse
ライブラリを使用していますが、コマンドを受け入れる方法がわかりません。
次のようになります。
init
この場合のコマンドになります。ユーザーが何も提供していない場合に実行する必要があるデフォルトのコマンドがあるため、常に必要というわけではありません。
これが私が今持っているコードです:
python - オプションが指定されたときの optionparser のデフォルトの選択を設定します
オプションの --list-something オプションを解析する python オプション パーサーがあります。また、 --list-something オプションにオプションの引数 (オプション) を持たせたい
--list-something が指定された場合だけでなく、引数を使用してdefault="simple"
もここでは機能しません。それ以外の場合は常に simple がデフォルトになります。
上記のコードはこれを生成しています:
しかし、私はこれが起こることを望みます:
Python 2.4 から 3.0 まで (3.0 は含まれていません) ですぐに使えるものが欲しいです。
argparse は python 2.7 でのみ導入されたので、これは私が使用できるものではありません。
python - optparse 構造をフラット化するにはどうすればよいですか?
Django の管理コマンドを作成しようとしていますが、問題が発生しました。option_list
変数は、フラット化されたオプションのリストである必要があるようです。
簡潔にするために編集されたコードは次のとおりです。実行されます。
すべてのオプション変数を取得し、フラット化してから、オプションを保持しながら をparser
削除し、それらを新しい変数に入れる必要があります。OptionGroup
Django には、このようなオプションを指定するクラスが必要です。これにより、反復処理が可能になります。
これを達成する方法に非常に迷っています。
python - 引用符付きのPythonargparse引数
argparseに引用符を食べないように指示する方法はありますか?
たとえば、引用符で引数を指定すると、argparseは引用符の内側にあるものだけを引数として取ります。引用符もキャプチャしたい(コマンドラインでエスケープする必要はありません)。
を生成します
が欲しいです
ruby - OptParse の 2 つの引数を持つオプション
私は次のようなことをしようとしています:
問題は、 を返しますがarg1
、 をarg2
返しますnil
。これを機能させる方法は?
r - Rのコマンドラインを介して複数の引数を渡す
コマンドラインを介して複数のファイルパス引数をRscriptに渡そうとしています。これは、引数パーサーを使用して処理できます。最終的にはこのようなものが欲しい
コマンドラインを通過し、解析時にRの配列として結果を取得します
optparseやgetoptを含むいくつかのパーサーを試しましたが、どちらもこの機能をサポートしていないようです。argparseは知っていますが、現在Rバージョン2.15.2では使用できません。
何か案は?
ありがとう