通过getopt模块中的getopt( )方法,我们可以获取和解析命令行传入的参数
getopt(args, shortopts, longopts=[ ])
代码
#! /usr/bin/env python # -*- coding: utf-8 -*- import sys from getopt import getopt opts, args = getopt(sys.argv[1:], 'ab:', ['aa', 'bb=']) # 解析出的参数名和值,格式:[(参数1,参数值1), (参数2,参数值2)...] print(f'opts: {opts}') # 未解析出来的参数值部分 print(f'args: {args}')
命令行
python main.py -a -b 'test short_b' --aa --bb=long_bb xxxx
输出:
opts: [('-a', ''), ('-b', 'test short_b'), ('--aa', ''), ('--bb', 'long_bb')]
args: ['xxxx']
对于没有参数值的a和aa参数,解析出的参数值都为空字符串'',由于bb参数的参数值long_bb和xxxx之间有空格,所以未解析出
命令行
python main.py -b=test_b
输出:
opts: [('-a', ''), ('-b', 'test short_b'), ('--aa', ''), ('--bb', 'long_bb')]
args: ['xxxx']
参数可传,也可省略,如果传,则必须是代码中所指定的