python基礎 —— argparse模塊

argparse模塊: 處理命令行參數 \ sys.argv[]

命令行參數

位置參數: ls root/
選項參數(已經提前定義好的參數,不能隨意指定):ls -l

steps

  1. 導入模塊 import argparse
  2. 創建一個解析對象 parser = argparse.ArgumentParser()
  3. 向對象中添加命令行參數和選項 parser.add_argument()
  4. 進行解析 parser.parse_args() # parse_args()從指定的選項中返回一些數據

argparse.ArgumentParser()

prog=None - 文件名,默認爲sys.argv[0],用來在help信息中描述程序的名稱。
description=None, - help時顯示的開始文字
epilog=None, - help時顯示的結尾文字
parents=[], -若與其他參數的一些內容一樣,可以繼承
formatter_class=argparse.HelpFormatter, - 自定義幫助信息的格式
prefix_chars=’-’, - 命令的前綴,默認是‘-’
fromfile_prefix_chars=None, - 命令行參數從文件中讀取
argument_default=None, - 設置一個全局的選項缺省值,一般每個選項單獨設置
conflict_handler=‘error’, - 定義兩個add_argument中添加的選項名字發生衝突時怎麼處理,默認處理是拋出異常
add_help=True - 是否增加-h/–help選項,默認是True)

# description:help時顯示的開始文字 python argparse_python.py -h/--help
parser = argparse.ArgumentParser(description = 'this is a description')
parser.add_argument('--ver', '-v', action = 'store_true', help = 'hahaha')
# 將變量以標籤-值的字典形式存入args字典

ArgumentParser.add_argument(name or flags…[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest]) 方法

  • name or flags - 參數有兩種,可選參數和位置參數。
  • action - 命令行遇到指定參數時的動作,默認值是 store。
    • store_const,表示賦值爲const;
    • append,將遇到的值存儲成列表,也就是如果參數重複則會保存多個值;
    • append_const,將參數規範中定義的一個值保存到一個列表;
    • count,存儲遇到的次數;此外,也可以繼承 argparse.Action 自定義參數解析;
      nargs - 參數個數,可以是具體的數字,或者是?號,當不指定值時對於 Positional argument 使用 default,對於Optional argument 使用 const;或者是 * 號,表示 0 或多個參數;或者是 + 號表示 1 或多個參數。
  • const - action 和 nargs 所需要的常量值。
  • default - 不指定參數時的默認值、給可選參數添加默認值
  • type - 參數類型類型轉換
  • choices - 參數可允許的值的一個容器。設置參數值的範圍,如果choices中的類型不是字符串,記得指定type;表示該參數能接受的值只能來自某幾個值候選值中,除此之外會報錯,用choice參數即可。
  • required - 該選項(可選參數)是否必選,默認爲True。
  • help - 參數的幫助提示,當指定爲 argparse.SUPPRESS 時表示不顯示該參數的幫助信息.
  • metavar - 在 usage 說明中的參數名稱,對於必選參數默認就是參數名稱,對於可選參數默認是全大寫的參數名稱.
  • dest - 解析後的參數名稱(選項的value解析出來後放到哪個屬性中),默認情況下,對於可選參數選取最長的名稱,中劃線轉換爲下劃線.

定位參數

# python argparse_usage.py 9
parser.add_argument("square", help="display a square of a given number", type=int)
print(args.square**2)

可選參數:命令行參數是可選的

短參數:用-加上一個字母來指定,如-e
長參數:用–加上一個字符串來指定,如–example

此外,使用命令時可選參數(長or短)若沒有對應參數值會報錯,這時可以添加參數action="store_true"來讓程序認爲該參數已出現,從而避免無參數值報錯。

# python argparse_usage.py --square 8
parser.add_argument("--square", help="display a square of a given number", type=int)
print(args.square**2)

定位參數與可選參數混用

查看幫助信息:-h --help

運行命令時使用-h參數可以查看關於該命令的幫助信息,如果想要在幫助信息中更爲詳細地描述某個參數,add_argument()函數的help參數便派上用場。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章