python 中命令行解析器

getopt模块是命令行选项的解析器,此模块可帮助脚本解析sys.argv中的命令行参数。


通常命令行分为两种模式:长参数和短参数。如 -h(短参数) 和 --help(长参数)

getopt方法有三个参数:

1.要处理的命令行参数,通常是 sys.argv[1:]

2.短参数,如:'-h-v:-m:' 后面跟“:”的是要输入参数值的,例:python test.py -h -v 1.2.1 -m POST,v和m都有对应的值

3.长参数列表,如:['--help', '--version=', '--method'] 后面跟“=”号是要输入参数值的, 例:python test.py --help --version=1.2.1 --method=POST

方法会返回两个元素,第一个是(参数,值)元祖对的列表;第二个是剥离参数列表后留下的程序参数列表。


代码示例:

import sys
import getopt

result = getopt.getopt(sys.argv[1:], '-h-v:-m:', ['help', 'version=', 'method='])
# result = getopt.gnu_getopt(sys.argv[1:], '-h-v:-m:', ['help', 'version=', 'method='])
print(result)


运行:

(venv) E:\python\3.7\practice>python argv_getopt.py -h -v 1.2.1 -m POST
([('-h', ''), ('-v', '1.2.1'), ('-m', 'POST')], [])


(venv) E:\python\3.7\practice>python argv_getopt.py -h -v 1.2.1 -m POST --help --version=2.2.2 --method=GET
([('-h', ''), ('-v', '1.2.1'), ('-m', 'POST'), ('--help', ''), ('--version', '2.2.2'), ('--method', 'GET')], [])


(venv) E:\python\3.7\practice>python argv_getopt.py -h -v 1.2.1 -m POST --help --version=2.2.2 --method=GET 123456
([('-h', ''), ('-v', '1.2.1'), ('-m', 'POST'), ('--help', ''), ('--version', '2.2.2'), ('--method', 'GET')], ['123456'])


 

展开阅读全文