python的argparse模块
使用步驟:
1:import argparse????????#導(dǎo)入argparse模塊
2:parser = argparse.ArgumentParser()????????#創(chuàng)建實(shí)例
3:parser.add_argument()????????#添加命令行選項(xiàng)
4:parser.parse_args()????????????????#解析
?python的argparse模塊add_argument詳解
add_argument:讀入命令行參數(shù),該調(diào)用有多個(gè)參數(shù)
ArgumentParser.add_argument(name or flags…[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest])
name or flags:是必須的參數(shù),該參數(shù)接受選項(xiàng)參數(shù)或者是位置參數(shù)(一串文件名)
copy
nargs: 當(dāng)選項(xiàng)后接受多個(gè)或者0個(gè)參數(shù)時(shí)需要這個(gè)來(lái)指定
比如-u選項(xiàng)接受2個(gè)參數(shù)
>>>?parser.add_argument('-u',nargs=2)?? >>>?parser.parse_args('-u?a?b'.split())?? Namespace(u=['a',?'b'])
當(dāng)選項(xiàng)接受1個(gè)或者不需要參數(shù)時(shí)指定nargs=’?',當(dāng)沒(méi)有參數(shù)時(shí),會(huì)從default中取值。對(duì)于選項(xiàng)參數(shù)有一個(gè)額外的情況,就是出現(xiàn)選項(xiàng)而后面沒(méi)有跟具體參數(shù),那么會(huì)從const中取值
c
>>>?parser.add_argument('-u',nargs='?')?? >>>?parser.parse_args(''.split())?? Namespace(u=None)?? >>>?parser.parse_args('-u?a'.split())?? Namespace(u='a')??>>>?parser.add_argument('-u',nargs='?',default='d')?? >>>?parser.add_argument('A',nargs='?',default='e')?? >>>?parser.parse_args(''.split())?? Namespace(A='e',?u='d')?? >>>?parser.parse_args('-u'.split())?? Namespace(A='e',?u=None)??>>>?parser.add_argument('-u',nargs='?',default='d',const='s')?? >>>?parser.add_argument('A',nargs='?',default='T',const='P')?? >>>?parser.parse_args(''.split())?? Namespace(A='T',?u='d')?? >>>?parser.parse_args('-u'.split())?? Namespace(A='T',?u='s')?? >>>?parser.parse_args('A'.split())?? Namespace(A='A',?u='d')而對(duì)于后面需要跟多個(gè)參數(shù)的情況(–foo a1 a2 a3…),則需要設(shè)置nargs=’*’copy
>>>?parser.add_argument('-u',nargs='*')?? >>>?parser.parse_args('-u?a?b?c?d?e'.split())?? Namespace(u=['a',?'b',?'c',?'d',?'e'])nargs=’+'也和nargs=’*'一樣,但是有一個(gè)區(qū)別當(dāng)’+'時(shí)少于1個(gè)參數(shù)(沒(méi)有參數(shù))位置參數(shù)會(huì)報(bào)錯(cuò)誤
copy
>>>?parser.add_argument('u',nargs='+')?? >>>?parser.parse_args(''.split())?? usage:?[-h]?u?[u?...]?? :?error:?too?few?arguments而‘*’會(huì)使用默認(rèn)值
c
default: 當(dāng)參數(shù)需要默認(rèn)值時(shí),由這個(gè)參數(shù)指定,默認(rèn)為None,當(dāng)default=argparse.SUPPRESS時(shí),不使用任何值
copy
>>>?parser.add_argument('u',nargs='*',default=argparse.SUPPRESS)?? >>>?parser.parse_args(''.split())?? Namespace()type: 使用這個(gè)參數(shù),轉(zhuǎn)換輸入?yún)?shù)的具體類型,這個(gè)參數(shù)可以關(guān)聯(lián)到某個(gè)自定義的處理函數(shù),這種函數(shù)通常用來(lái)檢查值的范圍,以及合法性
>>>?parser.parse_args('-u',type=int)?? >>>?parser.add_argument('f',type=file)?? >>>?parser.parse_args('-u?2?aa'.split())?? Namespace(f='aa',?mode?'r'?at?0x8b4ee38>,?u=2)
choices: 這個(gè)參數(shù)用來(lái)檢查輸入?yún)?shù)的范圍
copy
required: 當(dāng)某個(gè)選項(xiàng)指定需要在命令中出現(xiàn)的時(shí)候用這個(gè)參數(shù)
help: 使用這個(gè)參數(shù)描述選項(xiàng)作用
view plaincopy
dest: 這個(gè)參數(shù)相當(dāng)于把位置或者選項(xiàng)關(guān)聯(lián)到一個(gè)特定的名字
copy
metavar: 這個(gè)參數(shù)用于help 信息輸出中
copy
>>>?parser.add_argument('--str',nargs='*',metavar='AAA')?? >>>?parser.print_help()?? usage:?[-h]?[--str?[AAA?[AAA?...]]]??optional?arguments:??-h,?--help????????????show?this?help?message?and?exit??--str?[AAA?[AAA?...]]??>>>?parser.add_argument('str',nargs='*',metavar='AAA')?? >>>?parser.print_help()?? usage:?[-h]?[AAA?[AAA?...]]??positional?arguments:??AAA??optional?arguments:??-h,?--help??show?this?help?message?and?exit本文轉(zhuǎn)載自http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=21633169&id=4387657
轉(zhuǎn)載于:https://blog.51cto.com/lzs66/1842682
新人創(chuàng)作打卡挑戰(zhàn)賽發(fā)博客就能抽獎(jiǎng)!定制產(chǎn)品紅包拿不停!總結(jié)
以上是生活随笔為你收集整理的python的argparse模块的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 20160215
- 下一篇: C# 延时小函数 很好用