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

0 投票する
2 に答える
2292 参照

python - (OptionParser を使用して) 一緒に使用できないオプションをどのように処理しますか?

私の Python スクリプト (todo リスト用) は、次のようにコマンド ラインから開始されます。

一部のオプションは一緒に使用できません。たとえば、

リストの 3 番目の位置と末尾の両方を指定します。同じく

簡潔または有益であることについて私のプログラムを混乱させるでしょう。かなり強力なオプション制御をしたいので、このようなケースは山ほどありますし、今後も新しいケースが必ず出てくるでしょう。ユーザーがオプションの不適切な組み合わせを通過した場合、できれば optparse が提供する使用方法のヘルプと共に、有益なメッセージを提供したいと考えています。現在、私はこれを if-else ステートメントで処理していますが、これは本当に醜くて貧弱だと思います。私の夢は、コードに次のようなものを含めることです。

OptionParser は、オプションを解析するときにこれを使用します。

これは私の知る限り存在しないので、SO コミュニティに尋ねます。これをどのように処理しますか?

0 投票する
4 に答える
7434 参照

ruby - rubyのOptionParserを使用してサブコマンドを解析する

rubyのOptionParserを使用して、フォームのサブコマンドを解析できるようにしたいと思います

お気に入り:

別のオプションパーサーライブラリ(Trollopなど)に切り替えることができることは知っていますが、ライブラリをよりよく学習したいので、OptionParser内からこれを行う方法を学ぶことに興味があります。

任意のヒント?

0 投票する
1 に答える
2498 参照

python - 名前'OptionGroup'が定義されていません

このエラーは、ドキュメントにある次の例によって厳密に行われます。そして、あなたはそれについての説明をどこにも見つけることができません、それがその長く長いドキュメントページグーグルまたはstackoverflowであろうと。さらに、読んでoptparse.pyいるとOptionGroupが存在することが示されているため、混乱が増します。

誰かが私のエラーを見つけるのに1分もかからないでしょう。:)

はい、それは私が答えを知っていたことを意味します、しかしこれは私がそれをここで「文書化」したかったことを発見するのにとても時間がかかったので。

0 投票する
1 に答える
1476 参照

python - optparse: オプション文字列がありません

optparse を使用しようとしていますが、問題が発生しています。

私のスクリプトの使用法は次のとおりです。script <filename>

次のようなオプション文字列を追加するつもりはありません。script -f <filename>またはscript --file <filename>

引数文字列を渡さないことを選択できる方法はありますか? または、ユーザーにこれを許可する方法はありますか:

上記のすべてが同じ結果になりますか?

を使用してこれを簡単に実行できることはわかっていますが、プロジェクトの後半でコマンドラインサポートを追加する必要があり、その時間を追加してサポートをすべてargv[1]追加したくない場合があります。optparseそれが私が使いたい理由ですoptparse

0 投票する
2 に答える
1169 参照

python - PythonOptParserで任意の数の引数を解析する

PythonのOptParserで任意の数の引数を使用してオプションを定義するにはどうすればよいですか?

私は次のようなものが欲しいです:

OptParserのnargs=オプションは、定義された数に制限します。どうすればこのようなことができますか?

--my-optionの後にあるものを単純に取得して、リストに追加しますか?たとえば、ケース1の場合は["X、Y"]、ケース2の場合は["X、Y"、 "Z、W"]である必要があります。

OptParserでこれを行う方法は何ですか?

ありがとう。

0 投票する
5 に答える
145432 参照

python - なぜ optparse ではなく argparse を使うのですか?

Python 2.7 のドキュメントには、さらに別のコマンドライン解析モジュールが含まれていることに気付きました。getoptとに加えて、optparseがありますargparse

さらに別のコマンドライン解析モジュールが作成されたのはなぜですか? の代わりに使用する必要があるのはなぜoptparseですか? 知っておくべき新機能はありますか?

0 投票する
3 に答える
2063 参照

python - optparse記述のASCIIアート

optparseモジュールを使用してシェルスクリプトを作成しているので、説明の代わりに素敵なアスキーアートの絵を印刷したいと思いました。

このコードは次のようになります。

このようにレンダリングします:

スラッシュ、改行、エスパスのさまざまな組み合わせを試しましたが、成功しませんでした。

友達のピトニスタ、トトロを正しく表示するのを手伝ってくれませんか?

0 投票する
10 に答える
7785 参照

ruby - OptionParser は不明なオプションをスキップして、後で Ruby プログラムで処理できますか?

1 つの Ruby プログラムでOptionParser を複数回起動し、それぞれ異なるオプション セットを使用する方法はありますか?

例えば:

ここで、myscript.rb は subsys1 と subsys2 を使用し、それらのオプション処理ロジックをそれらに委譲します。おそらく、'a' が最初に処理され、続いて別の OptionParser オブジェクトで 'b' が処理されるシーケンスになります。そのコンテキストにのみ関連するオプションを選択するたびに。最終フェーズでは、各パーツが処理された後に不明な点が何も残っていないことを確認できます。

使用例は次のとおりです。

  1. さまざまなコンポーネントが異なる引数を持つ疎結合のフロントエンド プログラムでは、引数/オプションのセットを各部分に委譲するためだけに、「メイン」にすべてを知ってほしくありません。

  2. RSpec のような大規模なシステムをアプリケーションに組み込み、ラッパーがそれらを認識せずに、オプションを介してコマンドラインを渡すだけです。

--または--vmargs一部のJavaアプリのように、区切り文字オ​​プションでも問題ありません。

Unix の世界 (startx/X、git plumbing、および磁器) には、1 つのレイヤーがいくつかのオプションを処理し、残りを下のレイヤーに伝達する、同様のものの実世界の例がたくさんあります。

そのままでは、これは機能しないようです。各OptionParse.parse!呼び出しは徹底的な処理を行い、不明な点はすべて失敗します。不明なオプションはスキップしてよろしいかと思います。

ヒント、おそらく別のアプローチを歓迎します。

0 投票する
2 に答える
701 参照

ruby - OptionParser を使用してディレクトリまたはファイルを処理する方法

私はこれを頻繁にやっていることに気づきます:

orの代わりにDirorを指定できればもっといいのですが。これを行うパターンまたはRuby風の方法はありますか?PathnameString

0 投票する
5 に答える
16729 参照

python - 引数の Python optparse とスペース

optparse を使用する場合、オプションの後に文字列全体を取得したいのですが、最初のスペースまでの一部しか取得できません。

例えば:

「実行可能ファイル」に表示されるのは「python」だけです。

optparse を使用してそのような行を解析することは可能ですか、それとも argparse を使用する必要がありますか?

€: 既に "s で囲みました。しかし、コードをさらに掘り下げた後、サブプロセス呼び出しが引数を処理できないことがわかりました。

コマンドラインの文字列は、リスト「args」に詰め込まれます。

みたいな

これにより、システムがファイルの例外を見つけることができません。私が使うとき

できます。しかし、実行可能ファイルへの引数を失います。

サブプロセス モジュールは、最初に文字列を取得しない場合、リストからコマンドラインを構築するため、現時点ではその動作を説明できません。