問題タブ [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 - 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' が定義されていません
python - optparse からオプションの引数を渡す
optparse からオプションの引数を渡す方法を見つけようとしています。私が抱えている問題は、optparseオプションが指定されていない場合、デフォルトでNoneタイプになりますが、Noneタイプを関数に渡すと、デフォルトを使用する代わりに怒鳴ります(これは理解可能で有効です)。
問題は、オプションの引数に関数のデフォルトを使用し、膨大な数の if ステートメントを使用せずに入力がある場合にユーザー入力を渡すにはどうすればよいかということです。
python - Optparse Python セット ブール値
optparse を Python で動作させるのに非常に苦労しています。初めて使用するので、どんな助けでも大歓迎です。すべてのドキュメントを読みましたが、それらの例を使用してもうまくいきません。--clean を使用してブール変数を true にしようとしています。これは私が持っているものです:
これによりruncleanがtrueに設定されると思いましたが、そうすると:
私は得る:
何か案は?
optparse - py.test 同じディレクトリ構造内では、同じオプション名の pytest_addoption を持つことはできません
次のテスト ディレクトリ構造があり、それぞれに独自の conftest.py があります。
conftest.py では、pytest_addoption に test_option と同じオプション エントリがあります。
parser.addoption("--test_option", dest="test_option", type="string", help="test_option")
tests/api/newapi で py.test を実行すると、次のエラーが発生します。
optparse.OptionConflictError: オプション --test_option: 競合するオプション文字列: --test_option
ただし、tests/api または tests または tests/sanity で py.test を実行すると問題なく動作します。親ディレクトリに同じオプション名がある場合、新しいオプション名を考え出す必要があるのは仕様によるものですか?
問題のオプションはテストで同じ目的を果たすため、命名規則を同じに保つことができることを望んでいました。その意図は、テストが開始されたディレクトリに応じて、テストの詳細レベルを変えることです。
python - optparse csv.reader
optparse を csv リーダーにリンクしようとしていますが、できませんでした。以下は私のコードです:
ユーザーがファイル名のパスを入力できるように add_option 部分を接続する方法がわかりません。ありがとう!
コードを更新しました。それでもうまくいきません。
アップデート1:
python - オープンソースの科学プロジェクト-Python2.6または2.7を使用しますか?
2.xと3.xのどちらを使用するかについて、他にもいくつかのトピックを見てきました。ただし、これらのほとんどは少なくとも2年前のものであり、2.6と2.7を区別しません。
私は最終的に2013年までにリリースしたいと思うかもしれない科学プロジェクトを再起動しています。itertoolsのような標準の2.6+モジュールの中で、numpy、scipy、pylabを利用しています。これには、2.6と2.7のどちらのバージョンが適していますか?
これにより、スクリプトを作成するときにoptparseを使用するかどうかも明確になります。
編集:私は大学で働いており、手に取ったワークステーションにはPython2.4が搭載されていました。2.6と2.7の間で選択すると、アップグレードするディストリビューションが決まります。アドバイスありがとうございます!
python - optparse を使用して引数を受け入れる最も Pythonic な方法
現在、sys.argv[1] を使用してコマンド ラインで文字列を受け入れる python ファイルがあります。次に、その文字列に対して操作を実行し、変更された文字列をコマンド ラインに返します。
文字列のファイル (1 行に 1 つ、fwiw) を提供できるバッチ モード オプションを実装し、それをコマンド ラインに戻して、次のような出力をリダイレクトできるようにしたいと考えています。
現在の機能を保持しながら。
私は 2.6 しか実行していないため、argparse はオプションではありません。私が見たチュートリアルでは、argparse、getopt を使用するか、複雑すぎる/適用されない例を掘り下げています。
入力をチェックして適切に行動するための最良の方法は何ですか?
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 で変更されました。しかし、認識されていない引数を無視して、指定した引数を解析したい状況がいくつかあります。
例えば:
とにかくこれを上書きすることはありますか?