使用python optparse.py,有沒有一種方法可以確定是從命令行還是從默認值設置了特定的選項值。如何知道optparse選項是通過命令行還是默認值
理想我想有一個字典就像違約,但包含的選項實際上是從命令行提供
我知道,你可以用默認每個選項比較值的,但是這不會區分值通過與默認值匹配的命令行傳遞。
謝謝!
編輯
對不起我原來的措辭也不是很清楚。
我有大量從批處理文件調用的腳本。出於審計目的,我想報告所傳遞的選項,以及它們是否從命令行,默認或其他方式傳遞到日誌文件。
使用默認值,您可以判斷某個選項是否與默認值匹配,但仍不會告訴您它是否實際上是從命令行提供的。這可能是相關的:如果從命令行傳遞一個選項並且與默認值一致,那麼如果您更改了代碼中的默認值,腳本仍然會獲得相同的值。
對我來說,有一個相當於默認值的包含實際提供的值會很自然。
爲了使問題具體,在這個例子:
>>> sys.argv = ['myscript.py','-a','xxx']
>>> import optparse
>>> parser = optparse.OptionParser()
>>> parser.add_option('-a', default = 'xxx')
>>> parser.add_option('-b', default = 'yyy')
我怎麼知道該選項的是在命令行通過。是手動解析命令行的唯一方法嗎?
(我知道這是一個相當小的觀點,但我認爲這將是值得一問的情況下,我失去了對optparse smthing)
再次感謝
但是,不是默認點,以防止您不必擔心通過了哪些選項 - 無論它們是否匹配默認值? – 2010-04-07 14:59:27
也許這意味着你需要另一種選擇? – codeape 2010-04-07 15:39:50
請參閱我的編輯,這是關於審計的,所以它確實會影響腳本的調用方式。 – user265454 2010-04-09 11:48:08