Python系列之:argparse和vars
- 一、argparse用法示例
- 二、add_argument() 方法常用参数详解
- 三、vars用法示例
一、argparse用法示例
- argparse是Python模块,主要用于命令行选项、参数和子命令解析器。
- vars是Python模块,主要用于返回对象object的属性和属性值的字典对象
- 第一步:创建解析器ArgumentParser对象
- 第二步:添加参数add_argument
- 第三步:解析参数parse_args()
import argparse
#第1步:使用argparse首先创建一个ArgumentParser对象
parser = argparse.ArgumentParser(description='Ods dependency check')
#第2步:添加变量
parser.add_argument('-value', default="true", help="enable check or not", choices=['true', 'false'])
parser.add_argument('-config', help="path of config json file")
parser.add_argument('-server', help="debezium database server name")
parser.add_argument('-time',help="data end time str")
#第3步:解析输入变量
args = parser.parse_args()
print(args)
#Namespace(value='true', config=None, server=None, time=None)
print(args.value)
#true
print(args.config)
#None
print(args.server)
#None
print(args.time)
#None
#vars() 函数返回对象object的属性和属性值的字典对象。
args = vars(parser.parse_args())
print(args)
#{'value': 'true', 'config': None, 'server': None, 'time': None}
二、add_argument() 方法常用参数详解
- add_argument() 方法必须知道它是否是一个选项,例如 -f 或 --foo,
parser.add_argument('-f', '--foo')
,或者创建位置参数:parser.add_argument('bar')
- default:add_argument() 的命名参数 default,默认值为 None,指定了在命令行参数未出现时应当使用的值。
parser.add_argument('--foo', default=42)
- type:解析器会将命令行参数当作简单字符串读入。 然而,命令行字符串经常应当被解读为其他类型,例如 float 或 int。 add_argument() 的 type 关键字允许执行任何必要的类型检查和类型转换。如果 type 关键字使用了 default 关键字,则类型转换器仅会在默认值为字符串时被应用。
parser.add_argument('count', type=int) parser.add_argument('distance', type=float)
- choices:某些命令行参数应当从一组受限值中选择。 这可通过将一个容器对象作为 choices 关键字参数传给 add_argument() 来处理。 当执行命令行解析时,参数值将被检查,如果参数不是可接受的值之一就将显示错误消息。任何容器都可作为 choices 值传入,因此 list 对象,set 对象以及自定义容器都是受支持的。
>>> parser = argparse.ArgumentParser(prog='game.py')
parser.add_argument('move', choices=['rock', 'paper', 'scissors'])
>>> parser.parse_args(['rock'])
Namespace(move='rock')
>>> parser.parse_args(['fire'])
usage: game.py [-h] {rock,paper,scissors}
game.py: error: argument move: invalid choice: 'fire' (choose from 'rock',
'paper', 'scissors')
- required:argparse 模块会认为 -f 和 --bar 等旗标是指明 可选的 参数,它们总是可以在命令行中被忽略。 要让一个选项成为 必需的,则可以将 True 作为 required= 关键字参数传给 add_argument()
- help:help 值是一个包含参数简短描述的字符串。 当用户请求帮助时(一般是通过在命令行中使用 -h 或 --help 的方式),这些 help 描述将随每个参数一同显示
>>> parser = argparse.ArgumentParser(prog='frobble')
>>> parser.add_argument('--foo', action='store_true',
... help='foo the bars before frobbling')
>>> parser.add_argument('bar', nargs='+',
... help='one of the bars to be frobbled')
>>> parser.parse_args(['-h'])
usage: frobble [-h] [--foo] bar [bar ...]
positional arguments:
bar one of the bars to be frobbled
options:
-h, --help show this help message and exit
--foo foo the bars before frobbling
三、vars用法示例
- vars是Python模块,主要用于返回对象object的属性和属性值的字典对象
#第3步:解析输入变量
args = parser.parse_args()
print(args)
#Namespace(value='true', config=None, server=None, time=None)
#vars() 函数返回对象object的属性和属性值的字典对象。
args = vars(parser.parse_args())
print(args)
#{'value': 'true', 'config': None, 'server': None, 'time': None}