我爲這個python項目使用模塊。我打算在撥打parse_args()
之前從ArgumentParser
對象中獲取可用標誌。有人有主意嗎?如何從ArgumentParser對象中獲得可用標誌?
0
A
回答
3
從add_argument()的源代碼得到這個:
>>> import argparse
>>> parser = argparse.ArgumentParser()
>>> parser.add_argument('-v', '--verbosity', help='more debug info', action='store_true')
_StoreTrueAction(option_strings=['-v', '--verbosity'], dest='verbosity', nargs=0, const=True, default=False, type=None, choices=None, help='more debug info', metavar=None)
>>> parser._option_string_actions.keys()
['-v', '-h', '--verbosity', '--help']
>>>
1
我試圖解決這個問題有一天,我也從沒收到過什麼@vvoody確實比下面的其他一個滿意的答覆。
In [117]: map(lambda x : x.dest,parser._actions)
Out[117]: ['help', 'verbosity']
的好處是,它消除了所有的別名-v
== --verbosity
等但如果更改dest
爲--verbosity
e.g dest='loud'
然後返回loud
可能會或可能不會是一個問題。
argsparse
似乎是一個明顯的事情,提供開箱即用。
相關問題
- 1. ArgumentParser對象在傳遞標誌時沒有屬性'add_option'
- 2. 如何獲得imap標誌?
- 3. 如何從一組對象中獲得唯一的對象對?
- 4. 如何獲得對象標籤的ParentElement?
- 5. 如何從「Elastica_ResultSet」對象獲得結果
- 6. quickfix:如何從消息中獲得符號(標誌55)?
- 7. 如何獲得IEnumerable的可以有子對象的子對象
- 8. 如何獲得BeautifulSoup對象
- 9. 如何獲得JavaScript對象
- 10. 無論如何獲得編譯標誌文件中使用的編譯標誌?
- 11. 如何獲得java中對象的父對象引用?
- 12. Symfony2如何從通用對象中獲得Doctrine EntityManager
- 13. 如何獲得特定的對象集從對象
- 14. 從Controller對象獲得實例中NSImageView(可可)
- 15. 如何創建返回標誌對象
- 16. 獲得從QR對象
- 17. 獲得從固定對象
- 18. 獲得從框架對象
- 19. 如何在Twitter4j中獲得RateLimitStatus對象?
- 20. 如何在Openxava中獲得HttpServletResponse對象
- 21. 如何在JIRA中獲得ComponentManger對象
- 22. 如何獲得對象uint8clampedarray在foreach中?
- 23. 如何獲得模型中的對象?
- 24. 如何從通用方法獲得的對象調用函數?
- 25. 如何獲得在Django中從模型中投票的對象?
- 26. 如何獲得<g>組內對象的絕對座標?
- 27. IOS從MutableArray中獲得10個對象
- 28. 獲得從對象陣列中C#
- 29. 如何從對象鏈獲取對象
- 30. 如何從CheckboxTreeViewer獲取對象/對象?
我認爲vvoody's更接近我所需要的。有些奇怪的是,我們必須訪問這兩種方法的私有方法:/ – sfendell 2013-02-16 22:36:19
在我的情況下,我試圖將選項設置爲默認env變量,以便環境中的「$ FOO = bar」會設置dest = foo,無論是「--foo」還是「-f」或其他。同意使用私有方法訪問數據esp似乎很奇怪。當選項和內部模型之間可能存在不匹配時,argparse會提供幫助。 – sotapme 2013-02-16 22:41:27