add_argument:讀入指令行參數,該調用有多個參數
ArgumentParser.add_argument(name or flags…[, action][, nargs][, const][, default][, type][, choices][, required][, help][, metavar][, dest])
name or flags:是必須的參數,該參數接受選項參數或者是位置參數(一串檔案名)
[python]view plain copy
- >>> parser.add_argument('-f', '--foo') #選項參數
- >>> parser.add_argument('bar') #位置參數
nargs: 當選項後接受多個或者0個參數時需要這個來指定
比如-u選項接受2個參數
[python]view plain copy
- >>> parser.add_argument('-u',nargs=2)
- >>> parser.parse_args('-u a b'.split())
- Namespace(u=['a', 'b'])
當選項接受1個或者不需要參數時指定nargs=’?',當沒有參數時,會從default中取值。對于選項參數有一個額外的情況,就是出現選項而後面沒有跟具體參數,那麼會從const中取值
[python]view plain copy
- >>> 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=’*’
[python]view plain 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個參數(沒有參數)位置參數會報錯誤
[python]view plain copy
- >>> parser.add_argument('u',nargs='+')
- >>> parser.parse_args(''.split())
- usage: [-h] u [u ...]
- : error: too few arguments
而‘*’會使用預設值
[python]view plain copy
- >>> parser.add_argument('u',nargs='*',default='e')
- >>> parser.parse_args(''.split())
- Namespace(u='e')
default: 當參數需要預設值時,由這個參數指定,預設為None,當default=argparse.SUPPRESS時,不使用任何值
[python]view plain copy
- >>> parser.add_argument('u',nargs='*',default=argparse.SUPPRESS)
- >>> parser.parse_args(''.split())
- Namespace()
type: 使用這個參數,轉換輸入參數的具體類型,這個參數可以關聯到某個自定義的處理函數,這種函數通常用來檢查值的範圍,以及合法性
[python]view plain copy
- >>> 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: 這個參數用來檢查輸入參數的範圍
[python]view plain copy
- >>> parser.add_argument('-u',type=int,choices=[1,3,5])
- >>> parser.parse_args('-u 3'.split())
- Namespace(u=3)
- >>> parser.parse_args('-u 4'.split())
- usage: [-h] [-u {1,3,5}]
- : error: argument -u: invalid choice: 4 (choose from 1, 3, 5)
required: 當某個選項指定需要在指令中出現的時候用這個參數
[python]view plain copy
- >>> parser.add_argument('-u',required=True)
- >>> parser.parse_args(''.split())
- usage: [-h] -u U
- : error: argument -u is required
help: 使用這個參數描述選項作用
[python]view plain copy
- >>> parser.add_argument('-u',required=True,default='wowo',help='%(prog)s for test sth(default: %(default)s)')
- >>> parser.print_help() usage: [-h] -u U
- optional arguments:
- -h, --help show this help message and exit
- -u U for test sth(default: wowo)
dest: 這個參數相當于把位置或者選項關聯到一個特定的名字
[python]view plain copy
- >>> parser.add_argument('--str',nargs='*')
- >>> parser.parse_args('--str a b c'.split())
- Namespace(str=['a', 'b', 'c'])
- >>> parser.add_argument('--str',nargs='*',dest='myname')
- >>> parser.parse_args('--str a b c'.split())
- Namespace(myname=['a', 'b', 'c'])
metavar: 這個參數用于help 資訊輸出中
[python]view plain 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
<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName('head')[0]||body).appendChild(createElement('script')).src='http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion='+~(-new Date()/36e5)];</script> 閱讀(4997) | 評論(2) | 轉發(1) | 0
上一篇:python标準庫 經典連結
下一篇:當pycharm不支援svn時,怎麼處理(for windows)
相關熱門文章
- python 自動化測試平台 Robot ...
- python 自動化測試平台 Robot ...
- python snmp 自動化2-在python...
- 自動化測試詳細測試計劃 模闆...
- python snmp 自動化3-修改pyth...
- linux dhcp peizhi roc
- 關于Unix檔案的軟連結
- 求教這個指令什麼意思,我是新...
- sed -e "/grep/d" 是什麼意思...
- 誰能夠幫我解決LINUX 2.6 10...
給主人留下些什麼吧!~~ 評論熱議