Pythonargparse解析命令行參數模塊詳情

目錄

一、預備知識

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 argparseparser = 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 typeoptional arguments:  -h, --help        show this help message and exit  -c CONFIGUREFILE  configure filetoola.ini

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

到此這篇關于Python argparse 解析命令行參數模塊詳情得內容就介紹到這了,更多相關Python argparse內容請搜索之家以前得內容或繼續瀏覽下面得相關內容希望大家以后多多支持之家!

聲明:所有內容來自互聯網搜索結果,不保證100%準確性,僅供參考。如若本站內容侵犯了原著者的合法權益,可聯系我們進行處理。
發表評論
更多 網友評論1 條評論)
暫無評論

返回頂部

主站蜘蛛池模板: 又色又爽又黄的视频女女高清| 无人区免费高清在线观看| 国产精品一级毛片不收费| 亚洲欧美日韩久久精品第一区 | 国产无套在线播放| 亚洲人成在线播放| 在线日本妇人成熟| 欧美xxxx新一区二区三区| 国产精品视频2020| 亚洲图片欧美小说| 2018在线观看| 欧洲美熟女乱又伦av影片| 国产激情视频一区二区三区| 亚洲aⅴ在线无码播放毛片一线天| 老色鬼久久综合第一| 欧美国产日韩一区| 国产漂亮白嫩的美女| 久久精品视频国产| 骚包在线精品国产美女| 日本卡一卡二新区| 国产三级在线看| 一级一级一级毛片免费毛片| 精品国产午夜理论片不卡| 女班长的放荡日记高h| 亚洲美女视频免费| 999国产精品999久久久久久| 欧美日韩亚洲高清不卡一区二区三区| 好男人资源在线播放看| 人妻少妇精品久久久久久| 97se色综合一区二区二区| 欧美在线视频网| 国产成人亚洲综合| 中文字幕一区二区三区精彩视频 | 欧美黑人bbbbbbbbb| 日本道色综合久久影院| 国产一区二区三区不卡在线观看| 中国美团外卖男男china| 男人团vip每日更新番号库| 国产精品视频一区二区三区四| 亚洲AV香蕉一区区二区三区| 蜜桃成熟时1997在线看免费看|