首页 > 编程语言 >Python系列之:argparse和vars

Python系列之:argparse和vars

时间:2023-09-10 17:06:37浏览次数:40  
标签:argparse None args help vars Python parser argument add



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}


标签:argparse,None,args,help,vars,Python,parser,argument,add
From: https://blog.51cto.com/u_12080573/7426646

相关文章

  • 使用Python和Django构建Web应用程序
    Django简介Django是一个强大的PythonWeb框架,用于构建高效且可维护的Web应用程序。它提供了许多工具和库,用于处理常见的Web开发任务,如数据库管理、用户认证和URL路由。以下是一些Django的关键特点:ORM(对象关系映射):Django的ORM允许你使用Python代码来定义和查询数据库模型,而无需编写S......
  • 使用Python和Flask构建RESTful API
    Flask简介Flask是一个轻量级的PythonWeb框架,用于构建Web应用程序和RESTfulAPI。它是一个微型框架,具有灵活性和可扩展性,使开发变得简单和快速。Flask提供了一组核心工具,允许你构建Web应用程序的不同组件。以下是一些关键Flask特点:轻量级:Flask的核心库非常小巧,但可以轻松扩展功能。......
  • python系列之:深入理解函数、方法以及函数和方法的区别
    python系列之:python系列之:深入理解函数、方法以及函数和方法的区别一、函数二、函数参数1.必需参数2.关键字参数3.默认参数4.不定长参数三、函数和方法的区别一、函数Python定义函数使用def关键字,一般格式如下:def函数名(参数列表):函数体函数实际例子如下所示:defmax(a,......
  • ⑥初识python--python的字典与集合
    python的字典与集合一、字典的定义与访问1、为什么需要字典思考1:如果有多个数据,例如:'Tom','男',20,如何快速存储?答:列表,元组list1=['Tom','男',20]思考2:如何查找到数据"Tom"?答:查找到下标为0的数据即可。list1[0]思考3:如果将来顺序发生变化,如下所示,还能通过list1[0]访......
  • Python教程(13)——Python运算符详解|算术运算符|比较运算符|逻辑运算符|位运算符
    Python的运算符是用于执行各种操作的符号或符号组合。它们用于操作数据并进行算术、比较、逻辑和其他类型的运算。我们所熟知的加减乘除也是运算符中的一种。Python提供了多种类型的运算符,有算术运算符,比较运算符,赋值运算符,逻辑运算符,位算符等等。算术运算符算术运算符是Python......
  • Python教程(13)——Python运算符详解|算术运算符|比较运算符|逻辑运算符|位运算符
    Python的运算符是用于执行各种操作的符号或符号组合。它们用于操作数据并进行算术、比较、逻辑和其他类型的运算。我们所熟知的加减乘除也是运算符中的一种。Python提供了多种类型的运算符,有算术运算符,比较运算符,赋值运算符,逻辑运算符,位算符等等。算术运算符算术运算符是Python......
  • 使用【Python】快速生成本项目的requeirments.txt / pipreqs生成requirements.txt报
    使用【Python】快速生成本项目的requeirments.txt https://blog.csdn.net/qq_42076902/article/details/129417568pipreqs生成requirements.txt报错SyntaxError:invalidnon-printablecharacterU+FEFFhttps://blog.csdn.net/qq_51292462/article/details/128472993......
  • vscode运行Python调取文件报错 运行调试配置的问题
    报错原因:报错信息提示的是没有那个文件,但是那明明是有文件的,而且在终端运行没问题,这是因为vscode配置的原因,小伙伴按下面的方法解决即可!!!解决办法:"cwd":${fileDirname}把这个加到配置文件里: ......
  • Python基础学习day08
    常见的数据类型:int,整数类型(整形)bool,布尔类型str,字符串类型list,列表类型tuple,元组类型dict,字典类型set,集合类型float,浮点类型(浮点型)每种数据类型都有自己的特点及应用场景,以后的开发中需要根据实际的开发情况选择合适的数据类型。每种数据类型的讲解,会按照以下4个维度来进行:定义独有......
  • python实现自己的全局热键的第2种方法
    之前有过一版python实现的全局热键,但是在实际运行中发现,有时候不太灵敏,明明按下了目标热键,为什么没有反应呢?通过定位发现,有时候键盘勾子捕获不到ctrldown消息,特别是一段时间不操作电脑后容易出现这种情况,这时候ctrl键确实处于按下的状态(通过GetKeyState函数可以......