argparse模塊是的編寫用戶友好的命令行接口很是容易。程序只需定義好它要求的參數,而後argparse將負責如何從sys.argv中解析出這些參數。argparse模塊還會自動生成幫助和使用信息而且當用戶賦給程序非法的參數時產生錯誤信息。html
使用argparse模塊通常須要三個步驟:python
一、建立一個解析器ui
使用argparse的第一步是建立一個ArgumentParser對象:spa
>>> import argparse >>> parser = argparse.ArgumentParser()
ArgumentParse對象會保存把命令行解析成Python數據類型所須要的全部信息。.net
2. 添加參數命令行
經過調用add_argument()方法向ArgumentParser添加程序的參數信息。一般狀況下,這些信息告訴ArgumentParser如何接收命令行上的字符串並將它們轉換成對象。這些信息被保存下來並在調用parse_args()時用到。例如:code
>>> parser.add_argument('--name',help='username') _StoreAction(option_strings=['--name'], dest='name', nargs=None, const=None, default=None, type=None, choices=None, help='username', metavar=None) >>> parser.add_argument('--pass',help='password') _StoreAction(option_strings=['--pass'], dest='pass', nargs=None, const=None, default=None, type=None, choices=None, help='password', metavar=None)
接下來,調用parse_args()返回的對象將帶有兩個屬性,name和pass。分別保存着用戶名與密碼。orm
3. 解析參數htm
ArgumentParser經過parse_args()方法解析參數。它將檢查命令行,把每一個參數轉換成恰當的類型並採起恰當的動做。在大部分狀況下,這意味着將從命令行中解析出來的屬性創建一個簡單的 Namespace對象。對象
>>> argments = parser.parse_args(['--name','li','--pass','si'])
在腳本中,parse_args()調用通常不帶參數,ArgumentParser將根據sys.argv自動肯定命令行參數。
ArgumentParser 對象
class argparse.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)
建立一個新的argmentParserr對象。全部的參數應該以關鍵字參數傳遞。下面有對每一個參數各自詳細的描述,可是簡短地講它們是:
prog - 程序的名字(默認:sys.argv[0])
useage - 描述程序用法的字符串(默認:從解析器的參數生成)
description - 參數幫助信息以前的文本(默認:空)
epilog- 參數幫助信息以後的文本(默認:空)
parents - ArgmentParser 對象的一個列表,這些對象的參數應該包括進去
formatter_class - 定製化幫助信息的類
prefix_chars - 可選參數的前綴字符集(默認:‘-‘)
fromfile_prefix_chars - 額外的參數應該讀取的文件的前綴字符集(默認:None)
argument_default - 參數的全局默認值(默認:None)
conflict_handler - 解決衝突的可選參數的策略(一般沒有必要)
add_help - 給解析器添加-h/–help 選項(默認:True)
add_argument() 方法
ArgumentParser.add_argument(nameor flags...[, action][, nargs][, const][, default][, type][, choices][, required][, help][,metavar][, dest])
定義應該如何解析一個命令行參數。下面每一個參數有它們本身詳細的描述,簡單地講它們是:
name or flags- 選項字符串的名字或者列表,例如foo 或者-f, --foo。
action - 在命令行遇到該參數時採起的基本動做類型。
nargs - 應該讀取的命令行參數數目。
const- 某些action和nargs選項要求的常數值。
default - 若是命令行中沒有出現該參數時的默認值。
type- 命令行參數應該被轉換成的類型。
choices - 參數可容許的值的一個容器。
required - 該命令行選項是否能夠省略(只針對可選參數)。
help - 參數的簡短描述。
metavar - 參數在幫助信息中的名字。
dest - 給parse_args()返回的對象要添加的屬性名稱。
參考連接:http://blog.csdn.net/itlance_ouyang/article/details/52489674