91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python?argparse解析命令行參數模塊怎么使用

發布時間:2022-07-27 13:48:31 來源:億速云 閱讀:157 作者:iii 欄目:開發技術

這篇文章主要介紹“Python argparse解析命令行參數模塊怎么使用”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“Python argparse解析命令行參數模塊怎么使用”文章能幫助大家解決問題。

    一、預備知識

    argparsepython用于解析命令行參數和選項的標準模塊,用于代替已經過時的optparse模塊。argparse模塊的作用是用于解析命令行參數。

    1、安裝

    argsparsepython的命令行解析的標準模塊,內置于python,不需要安裝。使用的時候直接:

    import argparse

    2、使用的一般步驟

    這個模塊使用起來十分簡單,就類似于 造(買)個冰箱→在冰箱里面放點食材→需要的時候把食材拿出來做出美味的食物。

    它的使用分為三步:

    # 1.創建一個解析對象;
    parser = argparse.ArgumentParser()
    # 2.然后向該對象中添加你要關注的命令行參數和選項,
    #   每一個 add_argument 方法對應一個你要關注的參數或選項;
    parser.add_argument()
    # 3. 最后調用 parse_args()方法進行解析;
    parser.parse_args()

    另外,關于參數的書寫習慣,有如下幾種:

    • 空格分開,最常用,比如parser.parse_args('-x X'.split())

    • 長選項用=分開 ( “長”選項名字,即選項的名字多于一個字符),比如parser.parse_args('--foo=FOO'.split())

    • 短選項可以寫在一起,比如parser.parse_args('-xX')

    二、實操筆記

    上面簡要介紹了使用的基本步驟,下面首先詳細介紹涉及到的幾個函數,然后再給一個實例。

    1、函數詳解

    1.1ArgumentParser

    這個函數的作用就是創建一個解析對象(冰箱),下面是它的參數列表:

    ArgumentParser(prog=None, 
    usage=None,
    description=None, 
    epilog=None, 
    parents=[],
    formatter_class=argparse.HelpFormatter, 
    prefix_chars='-',
    fromfile_prefix_chars=None, 
    argument_default=None,
    conflict_handler='error', 
    add_help=True)

    參數含義如下所示:

    • prog:程序的名字,默認為sys.argv[0],用來在help信息中描述程序的名稱。

    • usage:描述程序用途的字符串

    • description:help信息前的文字。

    • epilog:help信息之后的信息

    • add_help:設為False時,help信息里面不再顯示-h --help信息。

    • prefix_chars:參數前綴,默認為-

    • fromfile_prefix_chars:前綴字符,放在文件名之前

    • argument_default:參數的全局默認值。

    • conflict_handler:對沖突的處理方式,默認為返回錯誤“error”。還有“resolve”,智能解決沖突。當用戶給程序添加了兩個一樣的命令參數時,“error”就直接報錯,提醒用戶。而“resolve”則會去掉第一次出現的命令參數重復的部分或者全部(可能是短命令沖突或者全都沖突)。

    1.2add_argument

    此函數用來指定程序需要接受的命令參數,它的參數列表如下所示:

    add_argument(name or flags...
    [, action]
    [, nargs]
    [, const]
    [, default]
    [, type]
    [, choices]
    [, required]
    [, help]
    [, metavar]
    [, dest])
    # 注:[] 表示可選

    參數含義如下:

    • name or flags:參數有兩種,可選參數和位置參數。parse_args()運行時,會用-來認證可選參數,剩下的即為位置參數。位置參數必選,可選參數可選。

    • action:參數動作;argparse內置6種動作可以在解析到一個參數時進行觸發:store 保存參數值,可能會先將參數值轉換成另一個數據類型。若沒有顯式指定動作,則默認為該動作。store_const 保存一個被定義為參數規格一部分的值,而不是一個來自參數解析而來的值。這通常用于實現非布爾值的命令行標記。store_ture/store_false 保存相應的布爾值。這兩個動作被用于實現布爾開關。append 將值保存到一個列表中。若參數重復出現,則保存多個值。append_const 將一個定義在參數規格中的值保存到一個列表中。version 打印關于程序的版本信息,然后退出。 count統計參數出現的次數。

    • nargs:參數的數量。值可以為整數N(N個),*(任意多個),+(一個或更多),值為?時,首先從命令行獲得參數,若沒有則從const獲得,然后從default獲得:

    • dest:參數值就保存為parse_args()返回的命名空間對象中名為該 dest 參數值的一個屬性。如果提供dest,例如dest="a",那么可以通過args.a訪問該參數

    • default:設置參數的默認值

    • type:把從命令行輸入的結果轉成設置的類型

    • choice:允許的參數值

    • required:是否必選

    • desk:可作為參數名

    • help:參數命令的介紹

    2、調用實例

    下面給個簡單的示例,只是說明如何調用而已,后續可根據上面對函數的詳細解釋來使其更實用智能。

    import argparse
    parser = argparse.ArgumentParser(description ="This is a Test!")
    parser.add_argument("type",choices=['scheduler','tool'],
                        help="make application type")
    parser.add_argument('-c',dest='configurefile',help="configure file")
    parser.print_help()
    args = parser.parse_args(["tool","-c","a.ini"])
    print(args.type)
    print(args.configurefile)
    # --------------output------------------
    usage: draft.py [-h] [-c CONFIGUREFILE] {scheduler,tool}
    
    This is a Test!
    
    positional arguments:
      {scheduler,tool}  make application type
    
    optional arguments:
      -h, --help        show this help message and exit
      -c CONFIGUREFILE  configure file
    tool
    a.ini

    這個簡單的例子就,就創建了一個argparse對象,然后加了兩個參數(不算-h),一個是必選參數tool,另一個是可選參數-c,然后使用dest將其轉換為參數的一個屬性。
    ps:其實一開始筆者遇到了一個問題,一開始筆者在必選參數前加了type,其實是不用的,對于必選參數直接給值即可。
    另外,當有多個必選參數時,需要注意必選參數的順序一定要和加參數的順序保持一致。
    可選參數和必選參數可以交換順序,只需保持可選參數與值不要分開,必選參數的相對順序與加參數的順序保持一致即可!

    關于“Python argparse解析命令行參數模塊怎么使用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    绿春县| 城口县| 西吉县| 依兰县| 司法| 华宁县| 平舆县| 调兵山市| 库车县| 盱眙县| 江川县| 图木舒克市| 秦皇岛市| 怀来县| 赤峰市| 彭泽县| 长葛市| 武穴市| 三门峡市| 云浮市| 祁东县| 余干县| 六安市| 桦川县| 财经| 阳春市| 乐平市| 临朐县| 宣汉县| 上犹县| 邯郸市| 株洲县| 涞水县| 武陟县| 巧家县| 桓台县| 昌都县| 东城区| 驻马店市| 区。| 铁力市|