python optparse.py を使用して、特定のオプション値がコマンド ラインから設定されたか、デフォルト値から設定されたかを調べる方法はありますか。
理想的には、デフォルトと同じように dict を持ちたいのですが、コマンドラインから実際に提供されるオプションが含まれています
各オプションの値をデフォルトと比較できることは知っていますが、これでは、コマンドラインから渡された値がデフォルトと一致したかどうかを区別できません。
ありがとう!
編集
申し訳ありませんが、私の元の言い回しはあまり明確ではありませんでした。
バッチ ファイルから呼び出される多数のスクリプトがあります。監査の目的で、渡されたオプションと、それらがコマンド ライン、デフォルト、またはその他の手段からログ ファイルに渡されたかどうかについて報告したいと思います。
デフォルトを使用すると、オプションがデフォルト値と一致するかどうかを知ることができますが、実際にコマンド ラインから指定されたかどうかはわかりません。これは関連する可能性があります。オプションがコマンドラインから渡され、デフォルトと一致する場合、コードでデフォルトを変更しても、スクリプトは同じ値を取得します。
私にとって、実際に提供された値を含む、デフォルトと同等のものを持つことは非常に自然なことだと思います。
質問を具体的にするために、この例では:
>>> sys.argv = ['myscript.py','-a','xxx']
>>> import optparse
>>> parser = optparse.OptionParser()
>>> parser.add_option('-a', default = 'xxx')
>>> parser.add_option('-b', default = 'yyy')
オプション a がコマンド ラインから渡されたことを知るにはどうすればよいですか。コマンドラインを手動で解析する唯一の方法はありますか?
(これはかなりマイナーな点であることは承知していますが、optparse で不足している場合に備えて、質問する価値があると思いました)
再度、感謝します