我在前几天的文章中介绍了在Shell中是如何通过参数名来传递参数值的。(Shell - 通过参数名传递参数值)。今天继续将这种场景延伸到Python中。
1. 背景
-
在多个文件或不同语言协同的项目中(比如python经常与shell协同),python脚本经常需要从命令行中获取参数。
-
调用一个python前如果不看源码不知道该模块如何接受参数,不利于团队合作和模块透出。
2. 看疗效
顺序传递参数值
参数: 看源码
调用: python test.py arg1 arg2 arg3
接受: sys.argv[1], sys.argv[2], …
参数名传递参数值
参数: python test.py --help
调用1: python test.py -a arg1 -b arg2
调用2: python test.py --a arg1 --b arg2
3. 实现
在python中实现参数名传递参数很简单,python提供了更好的方式argparse模块中的ArgumentParser类。
下面是一个简单的栗子
from argparse import ArgumentParser
import sys
parser = ArgumentParser()
parser.parse_args(sys.argv[1:])
在终端执行文件加上–help或者-h参数,就可以获得说明,是不是很酷!
D:\desktop>python argparseLearn.py --