0
点赞
收藏
分享

微信扫一扫

Python系列之:argparse和vars



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}


举报

相关推荐

0 条评论