python的argparse模块
使用步驟:
1:import argparse????????#導入argparse模塊
2:parser = argparse.ArgumentParser()????????#創建實例
3:parser.add_argument()????????#添加命令行選項
4:parser.parse_args()????????????????#解析
?python的argparse模塊add_argument詳解
add_argument:讀入命令行參數,該調用有多個參數
ArgumentParser.add_argument(name or flags…[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest])
name or flags:是必須的參數,該參數接受選項參數或者是位置參數(一串文件名)
copy
nargs: 當選項后接受多個或者0個參數時需要這個來指定
比如-u選項接受2個參數
>>>?parser.add_argument('-u',nargs=2)?? >>>?parser.parse_args('-u?a?b'.split())?? Namespace(u=['a',?'b'])
當選項接受1個或者不需要參數時指定nargs=’?',當沒有參數時,會從default中取值。對于選項參數有一個額外的情況,就是出現選項而后面沒有跟具體參數,那么會從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')而對于后面需要跟多個參數的情況(–foo a1 a2 a3…),則需要設置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=’*'一樣,但是有一個區別當’+'時少于1個參數(沒有參數)位置參數會報錯誤
copy
>>>?parser.add_argument('u',nargs='+')?? >>>?parser.parse_args(''.split())?? usage:?[-h]?u?[u?...]?? :?error:?too?few?arguments而‘*’會使用默認值
c
default: 當參數需要默認值時,由這個參數指定,默認為None,當default=argparse.SUPPRESS時,不使用任何值
copy
>>>?parser.add_argument('u',nargs='*',default=argparse.SUPPRESS)?? >>>?parser.parse_args(''.split())?? Namespace()type: 使用這個參數,轉換輸入參數的具體類型,這個參數可以關聯到某個自定義的處理函數,這種函數通常用來檢查值的范圍,以及合法性
>>>?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: 這個參數用來檢查輸入參數的范圍
copy
required: 當某個選項指定需要在命令中出現的時候用這個參數
help: 使用這個參數描述選項作用
view plaincopy
dest: 這個參數相當于把位置或者選項關聯到一個特定的名字
copy
metavar: 這個參數用于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本文轉載自http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=21633169&id=4387657
轉載于:https://blog.51cto.com/lzs66/1842682
新人創作打卡挑戰賽發博客就能抽獎!定制產品紅包拿不停!總結
以上是生活随笔為你收集整理的python的argparse模块的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 20160215
- 下一篇: C# 延时小函数 很好用