记录一下在py中使用argparse解析位置参数时, 位置参数设置为choice(列表)时, 默认值的问题.算个小坑吧, 所以记录一下.直接使用default先来看看直接使用default的情况....我们的想法是 第一个位置参数为 start/stop/status 第二个位置参数为monitor/transclient/all, 没写的时候默认为 status allimport argparseparser...= argparse.ArgumentParser(add_help=True, description='ei client')parser.add_argument('action', default...parser_instance = parser.parse_args()print(parser_instance.action, parser_instance.service)测试结果如下:图片发现并没有达到我们的预期, 默认值未生效其实官方有说明的......图片配合nargs使用defaultimport argparseparser = argparse.ArgumentParser(add_help=True, description='ei client
例如,要禁止parse_args时的参数默认添加,我们可以: >>> parser = argparse.ArgumentParser(argument_default=argparse.SUPPRESS...位置参数没有前缀,而可选参数需要加前缀(默认为’-‘) >>> parser.add_argument('bar') # 添加位置参数 >>> parser.add_argument('-f', '-....>) choices: 可供选择的值 >>> parser = argparse.ArgumentParser(prog='doors.py') >>> parser.add_argument('door...,对于位置参数无效 >>> parser = argparse.ArgumentParser() >>> parser.add_argument('--foo', dest='bar') >>> parser.parse_args...,对位置参数无效 help: help 信息 解析参数 要解析参数则需要用 ArgumentParser 对象的 parse_args() 方法,该方法运行会用’-‘来认证可选参数,剩下的即为位置参数。
程序定义它需要的参数,然后argparse 将弄清如何从 sys.argv 解析出那些参数。argparse 模块还会自动生成帮助和使用手册,并在用户给程序传入无效参数时报出错误信息。...conda install argparse 定义位置参数和可选参数 创建一个ArgumentParse的对象parser,在ArgumentParser中对该脚本做简要描述。...用add_argument函数定义位置和可选参数,help用来简单描述这个参数的作用。 位置参数是必须放在合适位置或是遵循一定顺序的参数。...help中的%(default)s) 用来检索参数中的默认值。这是为了确保description不是硬编码,能随着默认值灵活更改。...定义输入参数范围 可以用choices参数限制可能输入参数的值,这对于防止用户输入无效值很有用。
argparse 模块还会自动生成帮助和使用信息。如果用户传入无效的参数,argparse 会显示错误消息,帮助用户正确使用程序。...位置参数:这些参数是在命令行中按照顺序传递的,不带前缀。例如,parser.add_argument("filename") 表示一个位置参数,用户需要提供一个文件名。...总的来说,这段代码使用 argparse 设置了一个参数解析器,定义了多个命令行参数及其类型、默认值和帮助信息,解析了所提供的参数,最终以字典形式返回。...错误处理:argparse 在用户向程序传入无效参数时会发出错误消息。这有助于防止用户输入错误的选项或参数,从而提高程序的健壮性。...位置参数和可选参数的灵活组合:argparse 允许您定义位置参数和可选参数,以及它们的组合。位置参数是根据其在命令行中出现的位置来处理的,而可选参数则可以根据用户的选择进行设置。 ️
程序定义了它需要什么参数,argparse将找出如何从sys.argv中解析这些参数。argparse模块还自动生成帮助和使用消息,并在用户给程序提供无效参数时发出错误。...对于其他操作,默认为None。default所有可选参数和一些位置参数都可以在命令行中省略。add_argument()的默认关键字参数的值默认为None,它指定如果命令行参数不存在,应该使用什么值。...默认情况下,ArgumentParser对象使用dest值作为每个对象的“名称”。默认情况下,对于位置参数操作,dest值直接使用,对于可选参数操作,dest值大写。...、无效选项、错误的位置参数数量等。...description - 帮助输出中的子解析器组的描述,默认情况下为None。 prog - 使用子命令帮助将显示的使用信息,默认情况下程序的名称和子解析器参数之前的任何位置参数。
argparse 模块还会自动生成帮助和使用手册,并在用户给程序传入无效参数时报出错误信息。...如果传入无效参数,则会报出错误: ? 以下部分将引导你完成这个示例。...对其他动作,默认为 None。 default 所有选项和一些位置参数可能在命令行中被忽略。...可供选择的特殊符包括程序名,%(prog)s 和大多数传入 add_argument() 关键字参数,比如 %(default)s, %(type)s 等: >>> parser = argparse.ArgumentParser...默认情况下,ArgumentParser 对象使用 dest 的值作为每一个对象的名字。默认情况下,对于位置参数的行为,dest 的值可以直接被使用,并且对于可选参数的行为,dest 值是全大写的。
简介 argparse 模块主要用于处理 Python 命令行参数和选项,程序定义好所需参数后,该模块会通过 sys.argv 解析出那些参数;除此之外,argparse 模块还会自动生成帮助和使用手册...,并在用户给程序传入无效参数时报出错误信息。...使用 我们先来看一个简单示例: import argparse # 创建解析对象 parser = argparse.ArgumentParser() # 解析 parser.parse_args()...(默认值:'-') fromfile_prefix_chars:当需要从文件中读取其他参数时,用于标识文件名的前缀字符集合(默认值:None) argument_default:参数的全局默认值(默认值...一个命名或者一个选项字符串的列表,例如:-f,--foo action:当参数在命令行中出现时使用的动作基本类型 nargs:命令行参数应当消耗的数目 const:被一些 action 和 nargs 选择所需求的常数
, os 了解argparse模块 argparse是python的标准库,他可以使我们很友好的编写命令行界面,并且可以自动生成帮助文档和使用消息,还能在参数无效的时候发出错误。...argparse.ArgumentParse类参数理解 1. prog:改变应用的名字,我们可以使用`%(prog)s`引用应用的名字,默认的应用名字为文件名。...2. usage: 显示这个命令用法, 一般用来显示参数的用法 3. description:显示这个命令的帮助信息 4. epilog: 显示命令的帮助信息,位置在参数的下面 argparse.ArgumentParser.add_argument...- -d: 指定显示目录,如果不指定,默认为当前目录。 首先我们使用 ArgumentParser 类来指定参数。...import os import argparse parser = argparse.ArgumentParser(prog='ls', description='显示文件夹下的文件') # 指定参数
1、模块介绍 模块的源码位置 lib/argparse,如果你在代码中使用的不是这个位置,说明你导入错了。...argparse 可以让你轻松的编写用户友好的命令行接口, argparse 模块还会自动生成帮助和使用手册,并在用户给程序传入无效参数时报出错误信息。...2、来个例子 打开控制台,切换到代码所在的位置,然后输入命令: python ModifyFile.py -h 命令格式:python fileName.py -h python :表示执行python.../usr/bin/env python # encoding: utf-8 """ @Author: 香菜 @time: 2021/8/2 0002 下午 8:02 """ import argparse...5、总结 argparse 的应用场景很明确就是为自己的程序提供命令行接口说明, 这只是入门级别的,如果你想给你的程序更好的参数提示,可以查阅相关文档。
argparse 来编译 参数内容。...如果 argparse 认为参数无效,则退出,这通常在 python 中通过调用 sys.exit() 来完成,这会引发 SystemExit 错误,这就是您所看到的。...其他参数默认。 parse_args(args=[])#表示所有参数使用默认。...而我们的报错情况是形式1,一旦执行parse_args()语句,python系统就会执行读取参数的操作(我们看不到),此时jupyter notebook系统默认会给一个奇怪的参数: 因此: 将parse_args...最后一行换成: import argparse parser = argparse.ArgumentParser(description="Deep Gaussian Processes on MNIST
3xx 重定向 300 多重选择 被请求的资源有多个可选的项,客户端可自己选择重定向。 301 永久移动 被请求的资源已永久移到到新位置。 302 已找到 被请求的资源临时从不同位置响应。...303 查看其他位置 HTTP 1.1 新增状态码。被请求的资源可在另一位置找到,并应采用 GET 方式访问。 304 未修改 客户端请求的内容并未改变,服务器将返回空内容。...被请求的资源可在另一位置找到,并应采用 POST 方式访问。...502 网关错误 网关或代理服务器接收到远端服务器的无效响应。 503 服务无法获得 服务器已超载或维护中导致请求无法完成。 504 网关超时 HTTP 1.1 新增状态码。
1、定义:argparse是python标准库里面用来处理命令行参数的库2、命令行参数分为位置参数和选项参数: 位置参数就是程序根据该参数出现的位置来确定的...:[root@openstack_1 /]# ls -l # -l 就是ls命令里的一个选项参数 3、使用步骤:(1)import argparse 首先导入模块(2)parser = argparse.ArgumentParser...()方法参数须知:一般我们只选择用description prog=None - 程序名 description=None, - help时显示的开始文字...- 必选,指定参数的形式,一般写两个,一个短参数,一个长参数import argparse parser = argparse.ArgumentParser() parser.add_argument...,之后所有的输入都将作为该位置参数的值;‘+’表示读取至少1个该位置参数。'?'
1、定义:argparse是python标准库里面用来处理命令行参数的库 2、命令行参数分为位置参数和选项参数: 位置参数就是程序根据该参数出现的位置来确定的 如:[root@openstack...就是ls命令里的一个选项参数 3、使用步骤: (1)import argparse 首先导入模块 (2)parser = argparse.ArgumentParser() 创建一个解析对象...()方法参数须知:一般我们只选择用description prog=None - 程序名 description=None, - help时显示的开始文字 epilog=...,一般写两个,一个短参数,一个长参数 import argparse parser = argparse.ArgumentParser() parser.add_argument('echo')...,之后所有的输入都将作为该位置参数的值;‘+’表示读取至少1个该位置参数。’?’
3xx 重定向 300 多重选择 被请求的资源有多个可选的项,客户端可自己选择重定向。...301 永久移动 被请求的资源已永久移到到新位置。...302 已找到 被请求的资源临时从不同位置响应。 303 查看其他位置 HTTP 1.1 新增状态码。...被请求的资源可在另一位置找到,并应采用 POST 方式访问。...502 网关错误 网关或代理服务器接收到远端服务器的无效响应。
本系列文章默认使用 Python 3 作为解释器进行讲解。...: 命令行程序接受一个位置参数,它能出现多次,且是数字 默认情况下,命令行程序会求出给定的一串数字的最大值 如果指定了选项参数 --sum,那么就会将求出给定的一串数字的和 希望从各个库实现该例子的代码中能进一步体会它们的设计理念...2.1、argparse argparse 的设计理念就是提供给你最细粒度的控制,你需要详细地告诉它参数是选项参数还是位置参数、参数值的类型是什么、该参数的处理动作是怎样的。...你都不需要定义参数类型,fire 会根据输入和参数默认值来自动判断,这无疑进一步简化了实现过程。...结合上面的总结,可以选择出符合使用场景的库,如果几个库都符合,那么就根据你更偏爱的风格来选择。这些库都很优秀,其背后的思想很是值得我们学习和扩展。
在本教程的最后,你会知道: 为什么click相比于argparse和optparse来说是一个更好的选择 如何用它创建一个简单的CLI 如何将强制命令行参数添加到您的脚本 如何解析命令行标志和选项 如何通过添加帮助...click vs argparse:一个更好的选择? 你可能正在看上面的代码示例,在想“这些东西是什么意思?”这正是我在使用argparse遇到的一个问题:它不直观,很难阅读。...它是可选的,可以使用示例键作为默认值。 这里是我们目前伦敦的天气,形成Python REPL: ?...我们刚刚做出的更改将会破坏我们的CLI,因为默认API密钥对真实API无效。 该API将返回一个401 UNAUTHORIZED HTTP状态码。 不相信我? 这是证明: ?...以下是你所学到的: 为什么click是一个更好的选择相对argparse和optparse 如何用它创建一个简单的CLI 如何将强制命令行参数添加到您的脚本 如何解析命令行标志和选项; 如何通过添加帮助
如果脚本很简单或临时使用,没有多个复杂的参数选项,可以直接利用sys.argv将脚本后的参数依次读取(读进来的默认是字符串格式)。...,默认为1。...nargs还可以’*’用来表示如果有该位置参数输入的话,之后所有的输入都将作为该位置参数的值;‘+’表示读取至少1个该位置参数。’?’表示该位置参数要么没有,要么就只要一个。...一般情况下会设置一些默认参数从而不需要每次输入某些不需要变动的参数,利用default参数即可实现。...6)候选参数选择 表示该参数能接受的值只能来自某几个值候选值中,除此以外会报错,用choices参数即可。
通过使用这种方法,可以在使用 1、argparse简介: argparse 模块是 Python 内置的一个用于命令项选项与参数解析的模块,argparse 模块可以让人轻松编写用户友好的命令行接口。...通过在程序中定义好我们需要的参数,然后 argparse 将会从 sys.argv 解析出这些参数。argparse 模块还会自动生成帮助和使用手册,并在用户给程序传入无效参数时报出错误信息。...action - 命令行遇到参数时的动作,默认值是 store。...help - 参数的帮助信息,当指定为 argparse.SUPPRESS 时表示不显示该参数的帮助信息. metavar - 在 usage 说明中的参数名称,对于必选参数默认就是参数名称,对于可选参数默认是全大写的参数名称...此时即使通过default设置默认参数,也还是会报错。
领取专属 10元无门槛券
手把手带您无忧上云