我正在使用Python 2.7.9並使用argparse模塊作爲命令行參數。我想擴展我的代碼,使其能夠根據用戶在同一命令行中已經提供的參數取得命令行參數。可以說,參數是-a,-b,-c,-d 如果用戶給出-a <value>
那麼只有他應該能夠輸入-x <value>
並且同樣適用於另一種情況。如果用戶輸入-b <value>
那麼只有他應該能夠輸入-y <value>
。 任何人都可以請幫助我這個。 謝謝!Python中的迭代命令行參數
回答
一種方法是解析ARGS使用parse_known_args
兩個步驟,例如:
ap = argparse.ArgumentParse()
ap.add_argument('-a')
args, unknown = ap.parse_known_args()
if args.a and '-x' in unknown:
ap.add_argument('-x')
args = ap.parse_args()
這是行不通的,但我想因爲parse_known_args()任何參數正在接受,我想限制。有沒有辦法可以做到這一點?例如。說這個文件的名稱是abc.py 'python abc.py -a name -w surnane' 該代碼顯示沒有錯誤,但我希望它顯示如-w不被接受的錯誤。 – Vipul 2015-03-04 05:51:42
@Vipul當然,如果你無條件地用'parse_args()'重新解析。我更新了答案中的代碼。 – bereal 2015-03-04 06:17:12
非常感謝@bereal。 'AP = argparse.ArgumentParser() ap.add_argument( ' - 一個') 標誌= 0 指定參數時,未知= ap.parse_known_args() 如果args.a和未知 '-x': ap.add_argument ( '-x') 標誌= 1 ARGS = ap.parse_args() 如果標誌== 1: 打印args.x ap.add_argument( ' - p',需要= TRUE)' 能否請你告訴我這個代碼有什麼問題? – Vipul 2015-03-04 06:36:25
設計命令行參數時,請遵循* nix系統中使用的最佳實踐/標準。
- 參數的順序並不重要
- 你在你的程序來檢查強制性論點是否有給予,如果如果你正在尋找例如使用沒有給出有用的信息
請參考link
祝你好運!
- 1. Python的命令行參數
- 2. 我該如何迭代命令行參數與va_list中的C
- 3. 如何迭代shell中的命令行參數?
- 4. 命令行參數PYTHON
- 5. 命令行參數在Python
- 6. Python命令行參數
- 7. 命令行參數在Python
- 8. Python命令行參數(Windows)
- 9. python 2.4中的datetime命令行參數
- 10. Python中的可選命令行參數
- 11. 在python中定義一個linux命令的命令行參數
- 12. 迭代通過命令行參數,並追加到字符串
- 13. Python命令參數
- 14. Python命令行參數:調用函數
- 15. Python的子命令參數
- 16. 命令行參數和命令行參數數組的長度
- 17. 使用命令行參數通過Cython運行python代碼
- 18. 多個-m命令行參數(Python)
- 19. Python,命令行參數解析
- 20. Python Pexpect SSH命令行登錄參數
- 21. 符號在命令行參數.. python,bash
- 22. 傳遞命令行參數在Python
- 23. 轉發命令行參數在Python
- 24. Python:命令行參數問題
- 25. 有python生成命令行參數
- 26. 處理在Python命令行參數
- 27. Python命令行參數嘗試/除
- 28. 使用python命令行參數
- 29. Python管道和命令行參數
- 30. Python命令行參數格式問題
我不能夠理解我這樣做怎麼做。我可以使用nargs來使用戶輸入2值,然後是-a,但我不想使用它。 – Vipul 2015-03-03 09:52:14