首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如果用户指定'-h‘,我可以阻止argparse退出吗?

在使用argparse模块进行命令行参数解析时,如果用户指定了"-h"参数,argparse会自动显示帮助信息并退出程序。如果你想阻止argparse退出,可以通过自定义一个错误处理函数来实现。

首先,你可以使用argparse模块的ArgumentParser类创建一个解析器对象,并添加相应的命令行参数。然后,你可以通过调用parse_args()方法来解析命令行参数。

接下来,你可以定义一个错误处理函数,用于处理argparse解析过程中的错误。你可以通过设置ArgumentParser对象的error属性来指定错误处理函数。在错误处理函数中,你可以判断是否是用户指定了"-h"参数,如果是,则阻止argparse退出。

下面是一个示例代码:

代码语言:txt
复制
import argparse

# 创建解析器对象
parser = argparse.ArgumentParser()

# 添加命令行参数
parser.add_argument('-h', help='显示帮助信息')

# 解析命令行参数
args = parser.parse_args()

# 自定义错误处理函数
def error_handler(message):
    if args.h:
        print('用户指定了"-h"参数,阻止argparse退出')
    else:
        # 打印错误信息并退出程序
        parser.print_usage()
        parser.exit(2, '%s: 错误: %s\n' % (parser.prog, message))

# 设置错误处理函数
parser.error = error_handler

# 执行其他操作
# ...

在上述代码中,如果用户指定了"-h"参数,错误处理函数会打印一条提示信息,阻止argparse退出。如果用户指定了其他非法参数或缺少必需的参数,错误处理函数会打印相应的错误信息并退出程序。

需要注意的是,argparse模块是Python标准库中的一个模块,与具体的云计算品牌商无关。因此,在回答问题时,不需要提及具体的云计算品牌商,只需给出argparse的相关概念、用法和推荐的腾讯云产品即可。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Python中的参数传递与解析

如果解析出错则会抛出GetoptError异常,该异常有一个参数err。err.opt是出错时正在解析的选项,err.msg是错误消息。 出错的情况包括: 1....来解析选项和参数 argparse模块功能更加强大,例如可以自动生成help文档等,使用起来也更加简便,只需要三个步骤即可。.../arg_parse.py --version wchat 3.8.5 required指定该参数或者选项是必须提供的,否则会报错退出。...type指定参数的类型,可以是任何python内建的数据类型如int等,也可以是自定义的类型转换函数的函数名。例如: $ cat ./arg_parse.py #!.../arg_parse.py -f hello hello 小结 getopt虽然提供了接近Unix C的用户接口,方便了熟悉Unix C的程序猿/媛们,但argparse模块功能更为强大,使用起来也更为简洁

2K70

Python3 初学实践案例(3)argparse 命令行参数库的使用

最终选择了自带的比较新的 argparse 库。还有第三方的更简洁的库,不过没有使用。...就可以使这个参数是选填的。它还有其他的值,可以参考官方文档。这里使用问号表示可以接收0个(也就是不填)或者1个(也就是可以填)值。...并且可以同时指定简写或者双横线的全拼,也可以指定一个。根据你自己的需要来进行设置。...添加一个互相排斥的二选一的选填参数 上面添加的这些参数是可以满足很多场景,但是一个场景满足不了,比如,需要 -m | -c 这两个参数只能出现一个,如果同时出现两个就不行。...打印帮助信息 我们在程序后面加上 -h 这个参数,就可以得到一个我们的程序的详细的帮助信息。这个是 argparse 自带的牛逼功能。省得我们自己去构建帮助信息,表示非常喜欢。

1.5K90

Python3 初学实践案例(12)将源目录中的图片根据设定最长边参数保存到目标目录脚本(Image 的使用)

好,如果文字描述不足以让你理解,通过上面的详细举例,相信应该能理解的意图了。 最终实现源码 #!...= simg.size[1] # 如果原图片宽高均小于设置尺寸,则将原图直接复制到目标目录中 if simg_w <= size and simg_h <= size:...print('\033[32mSuccess:\033[0m Task Finish') # 目标目录处理函数 def checkTargetDir(sdir, tdir): # 如果目标目录为空时提示用户确认...设定了目标目录,但目标目录不存在 脚本会提示目标目录不存在,直接回车,或者输入 Y 或 y 则会创建这个目录,输入 N 或者 n 则退出程序。...关于这个库的使用,可以看下学习 python 的第三篇博文的详细介绍《argparse 命令行参数库的使用》 ,这里就不详细说明了。

68010

argparse------用于命令行选项、参数和子命令的解析器

例外情况是,如果指定了前缀_chars=,并且不包含-,在这种情况下-h和——help都不是有效的选项。...default所有可选参数和一些位置参数都可以在命令行中省略。add_argument()的默认关键字参数的值默认为None,它指定如果命令行参数不存在,应该使用什么值。...要使选项成为必需的,可以为required= keyword参数指定True,然后将其指定为add_argument():>>> parser = argparse.ArgumentParser()>>...当用户请求帮助(通常在命令行使用-h或——help)时,这些帮助描述将与每个参数一起显示:>>> parser = argparse.ArgumentParser(prog='frobble')>>>...例如,命令行参数-1可以指定选项的尝试,也可以是提供位置参数的尝试。

6.8K20

Python3 将源目录中的图片根据设定最长边参数保存到目标目录脚本(Image 的使用)

如果我们给客户制作网站,客户会发送过来一堆的图片,这些图片一般都是通过手机或者数码相机拍摄的。有一个问题就是这些图片会比较大。那我们就需要对这些图片进行压缩的处理,这就是写的这个脚本的实际用途。...好,如果文字描述不足以让你理解,通过上面的详细举例,相信应该能理解的意图了。 最终实现源码 #!...= simg.size[1] # 如果原图片宽高均小于设置尺寸,则将原图直接复制到目标目录中 if simg_w <= size and simg_h <= size:...print('\033[32mSuccess:\033[0m Task Finish') # 目标目录处理函数 def checkTargetDir(sdir, tdir): # 如果目标目录为空时提示用户确认...__) # 判断文件是否存在 os.path.isfile(__file__) # 判断路径是否为文件夹 os.path.isdir(__path__) # 创建多层文件夹(也可以创建单层文件夹) os.makedirs

1.2K30

Python3 初学实践案例(4)可设定长度和密码复杂级别的生成密码脚本

希望可以做一个更加完善的脚本,就是不但可以设定长度,并且可以设定密码复杂的等级。这样,才能满足我们在不同情况下所需要的密码。 另外,由于密码是在字典中随机取得字符组合在一起的。...这个结果可能并不满足我们的想要的条件,因此,必须检查一下,如果不满足,则需要重新生成一个,直到满足为止。...好,设定的程序的目标: 随机生成一个密码 可以指定密码的长度 可以指定密码的复杂等级 简单:由纯数字组成 一般:数字+小写字母+大写字母 复杂:数字+小写字母+大写字母+标点符号 密码必须符合指定的复杂等级才输出...由于之前已经学习了 argparse 命令行参数处理的库,《argparse 命令行参数库的使用》,所以处理命令行参数对于我来说变得异常简单,配置好之后,只需要把努力全部放在逻辑处理上即可。...反正不是这样的,高人给我指点一下呗: if re.search(r'[A-Za-z]', passwd): 还有就是,标点符号的正则,用的是 [_@!,.:;-=+/?],这能叫正则

602100

python 模块argparse用法实

argparse是python内置模块,用于快速创建命令行。有一个第三方模块Click也可以实现这个功能,两者各有优缺点,看个人需求吧。...有些程序可能希望支持/f这样的选项,可以使用prefix_chars="/"  fromfile_prefix_chars - (default: None)如果你希望命令行参数可以从文件中读取,就可能用到...例如,如果fromfile_prefix_chars='@',命令行参数中有一个为"@args.txt",args.txt的内容会作为命令行参数  add_help - 是否增加-h/-help选项(default...required=True那么就是必须的了     nsrgs 用来指定参数的个数,可以是1,2,3....也可以是?...arguments:   -h, --help  show this help message and exit 多个subparser 使用同样定义的参数 # add_help=False,必须指定

44510

在Python中创建命令行界面的最佳方式

用户运行这个程序时,它们被限制为一组定义的规则。例如,如果想将输出记录到文本文件中,该怎么办?作为一个用户,您可以创建一个命令行界面来提供这些问题的解决方案。 ?...文档:写出每个选项和参数的函数是很重要的,这样新用户可以知道你的程序是如何工作的。...处理错误情况:让用户确切地知道哪里出了问题 运行时状态:如果任务没有立即完成,您应该打印出当前的进度 使用argparse读取参数: Argparse是一个用于解析命令行参数的Python标准库模块。...作为程序员,您可以定义要接受的参数,而argparse将知道如何从sys中解析这些参数。当用户给程序提供无效参数时,Argparse还会自动生成帮助和使用消息,并输出错误。...现在使用argparse添加额外的参数。如果没有指定需要哪些参数,argparse将假定它们是可选的。你也可以设置参数的类型,对于——lines,我们取一个整数。

2.4K20

Python笔记:外部参数传入考察(一)argparse

较之前述的sys.argv暴力传参方法,argparse库具有以下优点: 接口上更为友好,可以通过key-value形式进行参数传递,用户更容易明白他传递的参数的具体含义; 参数传递包括但不限定于string..._get_kwargs()) 调用时,如果传入0、1、2之外的参数,则python会甩出报错如下: usage: test_argparse.py [-h] [-a {0,1,2}] test_argparse.py...特别地,如果需要人为指定其在namespace中的名称,则我们可以通过参数dest来进行人为指定。 给出代码样例如下: 2....后记 上述就是对于使用argparse库进行参数传递的知识整理,算是结合了的使用经验再补充上能想到的一些可能会出现的问题进行的一个较为系统的知识整理。...其中肯定会有细节的知识点没有提到,不过一般来说应该是能cover住一般用户的绝大部分使用需求了。 如果有遗漏的话可以参考下述参考链接中的官方文档进行查询,也欢迎在留言区内进行补充。

4K21

Python argparse 模块

从这四个命令中我们可以学到一些概念: ls 命令在不接受任何参数时也是有作用的,它默认用于展示当前目录下的内容。 如果我们想它让提供非默认以外的功能,我们必须指定更多的参数。...第二个开始显示 argparse 模块的用处,我们几乎什么也没做,但是已经得到了很好的帮助信息 --help 选项可以简写成 -h,它是唯一一个我们能指定的选项(即不需要代码定义),指定任何其他的都会导致报错...在这个例子中,将它命名为 echo,与它的功能相符合。 这时我们调用程序需要我们指定选项。 parse_args() 方法实际上会从我们指定的选项中返回一些数据,在这个例子中为 echo。...短选项 如果你熟悉命令行的用法,你们发现目前为止还没有涉及这个选项的简短版本的话题。...我们把它设置为 0 是为了让它可以进行整数比较。记住,默认情况下,如果一个可选参数没有被指定,它将得到 None 值,它不能进行整数比较(因此会报 TypeError 异常)。

1K20

Python 命令行之旅:使用 argparse 实现 git 命令

argparse 要实现子命令,那么之前介绍到的 嵌套解析器 必不可少 当用户键入子命令时,子命令所对应的子解析器需要作出响应,那么需要用到子解析器的 set_defaults 功能 针对 git add...实现 假定我们在 argparse-git.py[2] 文件中实现我们的 git 程序。 构建解析器 我们需要构建一个父解析器,作为程序的根解析器,程序名称指定为 git。...由于每个子解析器都定义了 handle,那么如果用户在命令行不输入任何命令时,args 就没有 handle 属性,那么我们就输出帮助信息 如果用户输入了子命令,那么就调用 args.handle,传入...git 和 args 对象,用以处理对应命令 至此,我们就实现了一个简单的 git 命令行,使用 python argparse-git.py -h 查看帮助如下: usage: git [-h] command...你是否想过,argparse 的四步曲虽然理解简单,但略微麻烦。有没有更简单的方式?如果很熟悉命令行帮助语法,能不能写个帮助字符串就把所有的命令行元信息给定义出来?

65420

如何在终端查看excel文件内容

具体的需要的功能有:查看excel的某一行信息查看某个范围的信息,信息的区间为start,end如果以上的行、起始行、结束行这几个参数都没有传递,就分页展示于是带着这样的设计,开始了折腾。...技术选型: python faker pandas rich argparse参数列表: -f 文件的绝对路径/相对路径-s 起始列-e 结束列-r 查看的行生成假数据还记得之前的faker教程?...%M:%S') self.updated_at = fake.date_time_this_month().strftime('%Y-%m-%d %H:%M:%S')# 创建一个用户实例user...书写代码现在数据已经有了,可以用来测试了。此处省略掉shigen调试的漫长过程,只展示代码的截图,需要源代码的伙伴可以私聊哈。图片效果验证现在,我们的编码过程已经实现了,需要来验证一下功能了。...q直接退出就不再演示了。后记这就是shigen花了两小时做出来的直接在终端读取excel内容的功能,期待能实实在在地提升日常的效率。

24910

python的argparse模块

argparse 是python自带的命令行参数解析包,可以用来方便地读取命令行参数,当你的代码需要频繁地修改参数的时候,使用这个工具可以将参数和代码分离开来,让你的代码更简洁,适用范围更广。...argparse使用比较简单,常用的功能可能较快地实现出来,下面分几个步骤,以Python3为例,逐渐递增地讲述argparse的用法。1....基本框架下面是使用argparser从命令行获取用户名,然后打印’Hello ‘+ 用户名,假设python文件名为print_name.py:# file-name:print_name.pyimport...的方式得到我们设置的--name参数的值,可以看到这里argparse默认的参数名就是--name形式里面--后面的字符串。...invalid choice: 'resnet' (choose from 'alexnet', 'vgg')因为我们所给的-arch参数resnet不在备选的choices之中,所以会报错6. help:指定参数的说明信息在现实帮助信息的时候

1.1K20

python3 使用argparse

在获取参数的同时需要写一点额外的代码对输入参数进行简单的合法性检查 3 在输入参数过多(通常情况下项目构建时入参很多,尤其是当各个脚本解耦充分的情况下)导致向其他函数传递的参数过多,而通常一个函数的参数最好不要超过7个 4 如果该...this is a calculator") # 脚本描述 parser.add_argument('--num1', help="input num1") # add_argument()指定程序可以接受的命令行选项...parser.add_argument('--num2', help="input num2") # add_argument()指定程序可以接受的命令行选项 parser.add_argument...return args 3 使用方法对用户友好,可以通过默认的--help查看脚本的简单使用方法 python argparse_test.py --help usage: argparse_test.py...[-h] [--num1 NUM1] [--num2 NUM2] [--et {+,-}] this is a calculator optional arguments: -h, --help

45010
领券