問題タブ [optionparser]

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 に答える
743 参照

ruby - Ruby OptionParser の空のスイッチ "-" の動作

編集:

OptionParser を使用してコマンド ライン入力を適切に処理するコードを作成しました。私は2つの大きなヒットに直面しています。

  1. 空のスイッチ '-' を渡してもエラーにはなりません。もちろん、一部のプログラムはそれを有効と見なしますが、私のものはそうすべきではありません。
  2. このプログラムには 2 つの必須スイッチが必要ですが、1 つのスイッチを問題なく受け入れます。たとえばprogram.ruby -f foo -b bar、有効な入力であり、両方のスイッチが :REQUIRED です。ただし、スイッチを 1 つだけ指定しても問題はなく、これは望ましい動作ではありません。

最初のケースでは、これを行いました:

それは正常に動作します。しかし、これは適切な方法ですか?

2 番目のケースについては、OptionParser.new ブロック内で解決策を探しましたが、見つかりませんでした。例えば

OptionParser.new ブロックの外でそれを行うのが通常の方法ですか?

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

ruby - OptionParser で単一の「-」(ダッシュ) を処理するには?

重複の可能性:
Ruby OptionParser の空のスイッチ「-」の動作

OptionParser を使用してコマンド ライン入力を適切に処理するコードを作成しました。私は2つの大きなヒットに直面しています。

  1. 空のスイッチ '-' を渡してもエラーにはなりません。
  2. このプログラムには 2 つの必須スイッチが必要ですが、1 つのスイッチを問題なく受け入れます。

最初のケースでは、これを行いました:

編集(成功に飛びつきました):空のスイッチの場合だけでなく、スイッチが空でない場合にも機能します。これどうやってするの?

2 番目のケースについては、OptionParser.new ブロック内で解決策を探しましたが、見つかりませんでした。OptionParser.new ブロックの外でそれを行うのが通常の方法ですか?

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

python - Python で optparse を使用して変数を定義する

optparse を使用して変数を設定する方法に興味があります。私はそのようにプログラムを実行します。

programname.py -dc:\users\\etc\etc\etc

-d C:\Users\\etc\etc を使用して、後でプログラムで使用する「パス」という変数を設定できるようにしたいと考えています。これはできますか?これが私が持っているoptionparserコードです。

辞書を作成するために使用する Path 変数を後で呼び出します。

私が得るエラーは次のとおりです。

E:>japp_id.py -d "C:\Users\\AppData\Roaming\Microsoft\Windows\Recent\ AutomaticDestinations" トレースバック (最新の呼び出しが最後): ファイル "E:\japp_id.py"、30 行目、 for os.listdir(path) の ID: NameError: name 'path' が定義されていません

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

ruby - Ruby OptionParser が MissingArgument をスローする

この前に 2 つのことを述べさせてください。

1) Stack Overflow と Google でこの回答を検索しました。
2) 今日は、Ruby をいじろうとした最初の日です。

よしよし。そこで、Homebrew を使用して 1 つのコマンドで MySQL、PHP、Redis、および xdebug をインストールするために使用できる Ruby スクリプトを作成しようとしています。このコマンドは次のようになります。

./phpserver.rb --with-php --with-mysql --with-xdebug --with-redis

ただし、上記を実行すると「引数がありません: --with-redis」が表示されます。「--with-redis=1.0」を使用して Redis のバージョンを強制するか、オプションを含めない場合、このエラーはなくなります。

これらのオプションはどれも必須ではありません (はい、スクリプトがまだゼロのオプションを処理していないことはわかっています)。

私は完全に困惑しています。あなたが私をリンクしたいという明白な答えがあれば、それは問題ありません. Ruby の知識が不足していることを前もってお詫びします。これは、私が最初に Ruby に飛び込むのを助けるためのサイド プロジェクトです。

これが私のスクリプトです:

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

python - オプションが指定されたときの optionparser のデフォルトの選択を設定します

オプションの --list-something オプションを解析する python オプション パーサーがあります。また、 --list-something オプションにオプションの引数 (オプション) を持たせたい

--list-something が指定された場合だけでなく、引数を使用してdefault="simple"もここでは機能しません。それ以外の場合は常に simple がデフォルトになります。

上記のコードはこれを生成しています:

しかし、私はこれが起こることを望みます:

Python 2.4 から 3.0 まで (3.0 は含まれていません) ですぐに使えるものが欲しいです。

argparse は python 2.7 でのみ導入されたので、これは私が使用できるものではありません。

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

python - pythonOptionParser.has_optionエラー

私のプログラムには以下の行があります

このスクリプトに-tオプションが指定されていない場合でも、parser.has_option( "-t")がtrueと評価されているため、上記のprintステートメントが出力されています。私はここで何かが欠けていますか?よろしくお願いします。

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

python - 大規模なプロジェクトでOptionParserとsphinx-buildの競合をどのように解決する必要がありますか?

触れたくない多くの外部ライブラリを含む大規模なPythonプロジェクトがあり、sphinxを使用してドキュメントを生成したいと思います。私の問題は、「make html」を実行するたびに、次のエラーが発生することです。

この問題は、文書化するディレクトリの一部にOptionParserがある場合に発生することをすでに理解しています(OptionParserはsphinxと競合していますか?)。私は実際にそれらのディレクトリでOptionParserを使用し、それをでラップしない多くのスクリプトを持っていif __name__ == "__main__": ...ます。私の質問は:

これらのスクリプトに触れずにドキュメントを生成するにはどうすればよいですか?

それらのファイル/パスを除外する方法はありますか?conf.pyでexclude_patternsを試しましたが、機能しませんでした。何故かはわからない。そのエラーをキャッチする方法はありますか?

アップデート

setup.py問題は、によって解析されたツリー内のファイルであることが判明しましたautodoc

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

ruby - Ruby OptionParser: 指定されていないすべてのオプションを処理する

で指定されていないすべてのオプションのカスタム プロセッサを使用しようとしていますOptionParser。ただしparse、最初の不明なオプションが見つかったときに例外が発生します。

未処理のパラメータをすべて取得して手動で処理することはできますか?

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

ruby - Ruby OptionParser: 2 つのオプション、1 つの引数

OptionParser を使用して複数のオプションを読み込み、それらすべてを 1 つのファイル名で動作させようとしています。パラメータなしで実行Ex: myprogram.rb -a -b file.txtできるようにしながら、2 つのオプションで必須の引数を共有するにはどうすればよいですか? -h現在、上記の行はそのパラメーターとして-atakeを作成するだけです。-b

編集:

それが何をしているのか:

私がする必要があること:

ノート:

ls -a ..これらのコマンドは、ls -l ..と同様に独立して同時に実行できる必要がls -a -l ..ありますが、ファイル名が指定されていない場合、どちらのコマンドも機能しないはずです。理想的には、このソリューションは任意のn個のオプションで機能するはずです。

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

ruby - コマンドラインの代わりに引数フォームファイルを解析する OptionParser

Ruby を使用して、コマンド ライン引数を取るコードを実行しています。今、私は異なるオプションで同じプログラムを使用しようとしているので、オプションをファイルに入れています。プログラムが各行を読み取ってオプションを解釈し、それに応じてプログラムを実行するようにします。

しかし、私はこのエラーが発生します。"C:/Ruby193/lib/ruby/1.9.1/optparse.rb:1348:in block in parse_in_order': undefined methodshift' for "--c execue --query unix --Servername abc123":String (NoMethodError)"

ファイルを読み取り、行を文字列として扱うことを理解しています。しかし、このシフトエラーを克服し、コマンドプロンプトで入力されたかのように行を処理する方法があるかどうか疑問に思っています. またはより良い解決策。

これが私のコードです。

ファイルの内容は以下 --c execue --query unix --Servername abc123

私も micro-optparse を使用しようとしましたが、同じエラーに直面しています。回避策はありますか?

更新: 「@mu is too short」からの提案に従って、以下のオプションを試しました。end.parse!("#{Shellwords.shellsplit(行)}") および/または end.parse!(Shellwords.shellsplit(行))。しかし、どれも機能しませんでした。

また、「line = line.split("\t")」と end.parse!(line) を使用して行を配列として分割しようとしました。--c execue --query unix --Servername abc123 として出力

しかし、今ではブロックとしてエラーが発生します:無効なオプション --c execute

更新: #2 エラーを見ると、問題は間違ったパラメーター (-c) にありますが、Array .

更新: 3 配列の受け渡しは、-c などの短い形式の引数に対してのみ機能しましたが、長い形式が指定された場合、無効な引数エラーで失敗しました。

optparse に関するドキュメントはあまりありません。マイクロパースも試しましたが、デフォルトの値が必要で、オプションではありません:(