首先导入:
import getopt, sys
getopt
的使用:只用一行就可以得到所有传入的参数:
opts, args = getopt.getopt(sys.argv[1:], '短参数', ["长参数"])
参数
参数分为短参数与长参数
- 短参数:如
-v
,特点是前面有一个横线-短参数
,后面加一个字母;如下面的-a input1
就是短参数 值
;也可以只有参数没有值,如-c
与-d
- 长参数:如
--help
,特点是前面有两个横线--长参数
,后面加一个字符串
getopt解析参数
在getopt
解析命令行时:
- 短参数:使用
参数:
(注意这个冒号),来匹配需要传参的参数与值,而没有传值的参数不需要写冒号:
- 长参数:使用
参数=
来匹配需要传参的参数与值,没有传参的参数不需要写等号=
所以getopt
获得参数也按照这个格式,示例:
如果期待运行的命令是:python my_program.py -a input1 -b input2 -c -d --param_a input3 --param_b
,那么解析的函数就是:
import getopt, sys
opts, args = getopt.getopt(sys.argv[1:], 'a:b:cd', ["param_a=","param_b"])
示例代码
import getopt, sys
opts, args = getopt.getopt(sys.argv[1:], 'a:b:cd', ["param_a=", "param_b"])
print("已匹配的参数:", opts)
print("未知参数:", args)
for op in opts:
print("参数:", op[0], " 值:", op[1])
打印的结果是:
已匹配的参数: [('-a', 'input1'), ('-b', 'input2'), ('-c', ''), ('-d', ''), ('--param_a', 'input3'), ('--param_b', '')]
未知参数: []
参数: -a 值: input1
参数: -b 值: input2
参数: -c 值:
参数: -d 值:
参数: --param_a 值: input3
参数: --param_b 值: