0

Python スクリプトに冗長オプションを追加したいのですが、最適な方法がわかりません。私の main() 関数は parse_cmdline() 関数を呼び出し、次に process() 関数を呼び出します。詳細オプションの関数を作成したいと考えています。verbose 関数をどこで定義すればよいかわかりません。parse_cmdline() から process() 関数に冗長オプションを渡す必要がありますか? これについて最善の方法を探しています。

4

4 に答える 4

2

ロギング

基本的に、必要な冗長性に応じて出力を除外するには、ロギング モジュールが必要です。つまり、すべての出力メッセージに重大度レベル (debugまたは などwarning) が与えられ、表示するメッセージの最小重大度レベルを決定できます。

解析された引数を使用して、必要な重大度レベルを決定するだけです (基本的に、最小重大度レベルが高いほど、プログラムは冗長ではなくなります)。

ログブック

logbook私は素晴らしいモジュールしかお勧めできません 。handlerログlevelが必要最小限の重要度に設定されているを使用すると、問題を簡単に解決できます (例: 表示のみnotice以上...)。

print次に、スクリプト内の への呼び出しをログ記録呼び出し logbook.debug、などに置き換える必要がありますlogbook.info

には、より高度な機能が多数ありlogbookます。ドキュメントを自由に参照してください。


logbookデフォルトでは、 は を登録StderrHandlerしてアプリケーションにプッシュしますが、 で簡単に元に戻すことができることに注意してくださいlogbook.default_handler.pop_application()

ドキュメントで提案されているように、他の解決策があります。

于 2012-10-11T20:34:43.177 に答える
1

あなたはarghを調べましたか?

最初のインポート

import argh

次に、このようなものを使用してオプションを追加します

@argh.arg('--verbose', default=False, help='Be more verbose')
于 2012-10-11T20:03:59.807 に答える
0

オプションを解析し、argparserそれらを渡すか、global

global値を読み取るだけの場合ではなく、グローバル スコープ内の名前に割り当てたい場合にのみキーワードを使用する必要があることに注意してください。

于 2012-10-11T20:01:39.530 に答える
0

をご覧くださいplacargparse私の意見では、これはコマンドライン解析用の素晴らしいパッケージであり、ビルトインよりもはるかに直感的です。

于 2012-10-11T20:04:14.733 に答える