我想在argparse模塊中有一些選項,例如--pm-export
但是,當我嘗試使用它時像args.pm-export
那樣,我得到的錯誤是沒有屬性pm
。我怎樣才能解決這個問題?命令行選項中是否可以有-
?在argparse中有短劃線的選項
回答
作爲indicated in the argparse
docs:
對於可選的參數的動作,dest的值通常從選項字符串推斷。 ArgumentParser通過採用第一個長選項字符串和來剝離最初的
--
字符串來生成dest的值。 任何內部-
字符將被轉換爲_
字符,以確保該字符串是你應該使用args.pm_export
有效的屬性名稱
左右。
破折號被轉換爲下劃線:
import argparse
pa = argparse.ArgumentParser()
pa.add_argument('--foo-bar')
args = pa.parse_args(['--foo-bar', '24'])
print args # Namespace(foo_bar='24')
不幸的是,衝至底線更換不適合positionalarguments(不--
前綴),如
parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument('logs-dir',
help='Directory with .log and .log.gz files')
parser.add_argument('results-csv', type=argparse.FileType('w'),
default=sys.stdout,
help='Output .csv filename')
args = parser.parse_args()
print args
# gives
# Namespace(logs-dir='./', results-csv=<open file 'lool.csv', mode 'w' at 0x9020650>)
所以工作時,你應該使用第1'參數add_argument()
作爲屬性名稱和metavar
kwarg到設置它應該如何尋找幫助:
parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument('logs_dir', metavar='logs-dir',
nargs=1,
help='Directory with .log and .log.gz files')
parser.add_argument('results_csv', metavar='results-csv',
nargs=1,
type=argparse.FileType('w'),
default=sys.stdout,
help='Output .csv filename')
args = parser.parse_args()
print args
# gives
# Namespace(logs_dir=['./'], results_csv=[<open file 'lool.csv', mode 'w' at 0xb71385f8>])
相關的Python錯誤報告:http://bugs.python.org/issue15125。 'argparse'使用'setattr'和'getattr',所以'dest'名稱不必是有效的'dot'屬性名稱。用戶也可以使用'getattr'。 – hpaulj
我只是做'positions_arg = getattr(解析器,'位置參數')' –
正是我需要的 - 我用'metavar'向後做了,並找不出爲什麼它不工作。謝謝! – dwanderson
- 1. 多項短劃線
- 2. 帶有Python選項的選項argparse?
- 3. argparse選項選項
- 4. dot:短劃線
- 5. 用短劃線(' - ')在右側用短劃線填充字符串
- 6. ng-attr其中屬性有短劃線
- 7. 帶有短劃線的ASP.NET MVC路由
- 8. 在vim中用短劃線加下劃線文字
- 9. 在Ruby on Rails中使用短劃線`-`而不是下劃線`_`
- 10. 如何在IIRF規則中用'下劃線'代替'短劃線'?
- 11. 下劃線/刪除選擇元素中的所有選項
- 12. PyYAML用下劃線替換鍵中的短劃線
- 13. 在FontDialog中顯示顏色選項,沒有下劃線和刪除選項
- 14. PHP中的奇怪短劃線字符
- 15. 如何在內部區域用短劃線代替下劃線?
- 16. 簡單的選擇問題與 - (短劃線)在哪裏條款
- 17. Argparse:獲取在命令行中傳遞的所有選項
- 18. 引用argparse中的其他選項
- 19. Rails - 想要創建一個帶有短劃線或下劃線的控制器
- 20. 橫向短劃線在HTML或CSS?
- 21. 分割QString在 - (短劃線)字符,列表項訪問
- 22. 如何在字段中選擇下劃線選項
- 23. argparse多個選項組合
- 24. Python argparse選項級聯
- 25. argparse連接cli選項
- 26. Sitecore項目Web Api帶短劃線或連字符的路徑
- 27. my.cnf.d/server.cnf配置 - 短劃線或下劃線
- 28. 正則表達式:區分下劃線(_)和短劃線( - )
- 29. 正則表達式字母,數字,短劃線和下劃線
- 30. Fabric.js beta2 - 文本下劃線選項
僅適用於可選參數。必需的連字符保持連字符,因此需要下劃線才能使其可訪問。 – n00dle