命令行的模式选项,是可配置但是不需要提供具体参数的那些选项。比如ls命令,有 -l 参数,也有 -h 参数,还有 -a 参数。在具体使用的时候,可以直接在命令行写成 -alh 这种风格。python的argparse模块,支持这种命令行的模式选项。
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-s', action='store_true')
parser.add_argument('-e', action='store_true')
args = parser.parse_args()
if args.s: print('have s')
if args.e: print('have e')
以上代码定义了两个模式选项,-s 和 -e,需要配合action=‘store_true’这个参数,表示只要配置了,对应的值就是True,不配置就是False(None的真值判断就是False)。如下是这段代码在命令行调用的情况:
$ python3 arg.py -s -e
have s
have e
$ python3 arg.py -e -s
have s
have e
$ python3 arg.py -es
have s
have e
$ python3 arg.py -se
have s
have e
-s 和 -e可以分开,也可以混在一起,打乱顺序也没关系。模式选项这种命令行参数风格,来自Unix,python的argparse模块支持得还不错。
-- EOF --