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

Python argparse:有没有办法在nargs中指定范围?

Python argparse是Python标准库中的一个命令行解析模块,它提供了一种简单而灵活的方式来解析命令行参数。在argparse中,nargs参数用于指定命令行参数的数量。

在argparse中,nargs参数可以接受以下几种取值:

  1. 如果nargs的取值为一个整数,则表示需要接受固定数量的参数。例如,nargs=2表示需要接受两个参数。
  2. 如果nargs的取值为'?',则表示需要接受零个或一个参数。当命令行中没有提供参数时,argparse会将该参数的值设为默认值。
  3. 如果nargs的取值为'*',则表示需要接受零个或多个参数。argparse会将这些参数收集到一个列表中。
  4. 如果nargs的取值为'+',则表示需要接受一个或多个参数。argparse会将这些参数收集到一个列表中。
  5. 如果nargs的取值为argparse.REMAINDER,则表示需要接受剩余的所有参数。argparse会将这些参数收集到一个列表中。

根据以上的定义,argparse并没有直接支持指定参数数量的范围。但是我们可以通过自定义的方式来实现这个功能。下面是一个示例:

代码语言:python
代码运行次数:0
复制
import argparse

def check_range(value):
    ivalue = int(value)
    if ivalue < 1 or ivalue > 10:
        raise argparse.ArgumentTypeError("%s is not in range [1, 10]" % value)
    return ivalue

parser = argparse.ArgumentParser()
parser.add_argument('count', type=check_range, help='an integer in the range [1, 10]')
args = parser.parse_args()

print(args.count)

在上面的示例中,我们定义了一个自定义的类型检查函数check_range,用于检查参数的范围。如果参数不在指定的范围内,我们会抛出一个argparse.ArgumentTypeError异常。然后,我们将这个自定义的类型检查函数传递给type参数,这样argparse会在解析参数时调用这个函数进行类型检查。

这样,当我们运行这个脚本并提供一个参数时,argparse会先调用check_range函数进行类型检查,如果参数不在指定的范围内,就会抛出异常。否则,argparse会将参数的值传递给args.count

这是一个简单的示例,你可以根据自己的需求进行扩展和修改。希望对你有帮助!

腾讯云相关产品和产品介绍链接地址:

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

相关·内容

Python | 使用argparse解析命令行参数

今天是Python专题第27篇文章,我们来聊聊Python当中的命令行参数工具argparse。...基本用法 argparsePython当中的一个库,我们需要先import一下,这个库我没记错应该是Python自带的,也不需要安装,我们直接就可以使用。...默认值 如果参数很多的时候,我们有时候可能不希望每一个都指定一个值,而是希望可以不填的时候有一个默认值。这个想法非常正常,想要做到这点也很简单,我们可以通过default参数来指定。...这也是允许的,默认值可以不在可选值范围内,但是当我们传入1就会触发可选值校验。 action action是一个很神奇也很有用的操作,可以指定参数的处理方式。...总结 有了parser之后,我们Python当中处理命令行参数会变得非常简单,我们可以做各种各样的定制化操作。

2K10
  • Python | 使用argparse解析命令行参数

    今天是Python专题第27篇文章,我们来聊聊Python当中的命令行参数工具argparse。...比较好的办法就是把必要的参数设置成通过命令行传入的形式,这样我们只需要在运行的时候修改参数就可以了。...基本用法 argparsePython当中的一个库,我们需要先import一下,这个库我没记错应该是Python自带的,也不需要安装,我们直接就可以使用。...这也是允许的,默认值可以不在可选值范围内,但是当我们传入1就会触发可选值校验。 action action是一个很神奇也很有用的操作,可以指定参数的处理方式。...之后,我们Python当中处理命令行参数会变得非常简单,我们可以做各种各样的定制化操作。

    59310

    pythonargparse 命令行参数解析包

    简介argparsepython自带的命令行参数解析包,可以用来方便地读取命令行参数,当你的代码需要频繁地修改参数的时候,使用这个工具可以将参数和代码分离开来,让你的代码更简洁,适用范围更广使用方法导入...如:python demo.py zcy2、default参数:提供参数默认值3、required:默认情况下,可选项(前面有'-')被认为并不一定需要出现在命令行参数,但是如果设置了required...get_parser() args = parser.parse_args() print('the arch of CNN is '.format(args.arch))6、help:指定参数的说明信息...0或1个参数‘*’0或多个参数‘+’1或者多个参数# file-name: nargs.pyimport argparsedef get_parser(): parser = argparse.ArgumentParser...nargs.py -name A B CHello to A, B, C8、metavar: 参数的名字,显示 帮助信息时才用到.

    78030

    如何利用Python学习linux命令?

    使用模块:argparse, os 了解argparse模块 argparsepython的标准库,他可以使我们很友好的编写命令行界面,并且可以自动生成帮助文档和使用消息,还能在参数无效的时候发出错误...2. usage: 显示这个命令用法, 一般用来显示参数的用法 3. description:显示这个命令的帮助信息 4. epilog: 显示命令的帮助信息,位置参数的下面 argparse.ArgumentParser.add_argument...- nargs='*': 将所有的参数保存在列表 - nargs='+': 将所有的参数保存在列表,但是至少得有一个参数 - nargs=argparse.REMAINDER: 其余的参数全部保存在一个...6. choices: 将参数指定在一个范围内,超出就报错 7. required: 指定参数是否为必传参数。...import os import argparse parser = argparse.ArgumentParser(prog='ls', description='显示文件夹下的文件') # 指定参数

    81310

    会用python把linux命令写一遍的人,进大厂有多容易?

    文章我就提到如何提升自己的 python 能力呢?直接找项目写,但是作为零基础 / 小白 / 入门 的你来说做一个博客还要学 web 框架、html、css、js,又成为了阻碍你写实际项目的阻碍。...2018.2 - 使用模块:argparse, os 了解argparse模块 argparsepython的标准库,他可以使我们很友好的编写命令行界面,并且可以自动生成帮助文档和使用消息,还能在参数无效的时候发出错误...2. usage: 显示这个命令用法, 一般用来显示参数的用法 3. description:显示这个命令的帮助信息 4. epilog: 显示命令的帮助信息,位置参数的下面 argparse.ArgumentParser.add_argument...- nargs='*': 将所有的参数保存在列表 - nargs='+': 将所有的参数保存在列表,但是至少得有一个参数 - nargs=argparse.REMAINDER: 其余的参数全部保存在一个...6. choices: 将参数指定在一个范围内,超出就报错 7. required: 指定参数是否为必传参数。

    65330

    会用python把linux命令写一遍的人,进大厂有多容易?

    文章我就提到如何提升自己的 python 能力呢?直接找项目写,但是作为零基础 / 小白 / 入门 的你来说做一个博客还要学 web 框架、html、css、js,又成为了阻碍你写实际项目的阻碍。...2018.2 - 使用模块:argparse, os 了解argparse模块 argparsepython的标准库,他可以使我们很友好的编写命令行界面,并且可以自动生成帮助文档和使用消息,还能在参数无效的时候发出错误...2. usage: 显示这个命令用法, 一般用来显示参数的用法 3. description:显示这个命令的帮助信息 4. epilog: 显示命令的帮助信息,位置参数的下面 argparse.ArgumentParser.add_argument...- nargs='*': 将所有的参数保存在列表 - nargs='+': 将所有的参数保存在列表,但是至少得有一个参数 - nargs=argparse.REMAINDER: 其余的参数全部保存在一个...6. choices: 将参数指定在一个范围内,超出就报错 7. required: 指定参数是否为必传参数。

    61120

    python argparse处理命令行参数

    位置参数是必须提供的,前面不需要短横杠的修饰,直接就是参数名称,ls命令的用法示意如下 ls -l dir 其中-l就是一个选项, dir则是一个位置参数, 要在python脚本实现这样的命令行传参,...可以看到,argparse为脚本自动添加了-h选项,用来查看帮助文档 python test.py -h usage: test.py [-h] [-l] dir positional arguments...该模块,关键的是掌握add_argument方法的使用,该方法有多个参数,列表如下 1. name 表示参数的名称,选项可以同时提供短选项和长选项,也可以只提供其中的一种,位置参数直接写参数名称即可...None, default=10, type=, choices=None, help=None, metavar='threads') 8. choices 其值为一个列表,指定了参数的可选范围...choices=None, help=None, metavar=None) 通过多个参数的组合,提供了强大的命令行传参方式,尽管python还有其他模块也提供了命令行参数的处理功能,但是官方还是首推使用

    1.6K20

    python3argparse模块

    () 创建一个解析对象(3)parser.add_argument() 向该对象添加你要关注的命令行参数和选项(4)parser.parse_args() 进行解析 4、argparse.ArgumentParser...- 必选,指定参数的形式,一般写两个,一个短参数,一个长参数import argparse parser = argparse.ArgumentParser() parser.add_argument...('echo') # add_argument()指定程序可以接受的命令行选项 args = parser.parse_args() # parse_args()从指定的选项返回一些数据 print(...choice的类型不是字符串,要指定type表示该参数能接受的值只能来自某几个值候选值,除此之外会报错,用choice参数即可parser.add_argument('file', choices...arg_parse>python demo1.py test1 read in test1 nargs - 指定这个参数后面的value有多少个,默认为1# 表示脚本可以读入两个整数赋予num键

    71910

    pythonargparse模块

    argparsepython自带的命令行参数解析包,可以用来方便地读取命令行参数,当你的代码需要频繁地修改参数的时候,使用这个工具可以将参数和代码分离开来,让你的代码更简洁,适用范围更广。...argparse使用比较简单,常用的功能可能较快地实现出来,下面我分几个步骤,以Python3为例,逐渐递增地讲述argparse的用法。1....invalid choice: 'resnet' (choose from 'alexnet', 'vgg')因为我们所给的-arch参数resnet不在备选的choices之中,所以会报错6. help:指定参数的说明信息现实帮助信息的时候...architecture of CNN, at this time we only support alexnet and vgg.7. dest:设置参数代码的变量名...8. nargs: 设置参数使用可以提供的个数使用方式如下:parser.add_argument('-name', nargs=x)其中x的候选值和含义如下:值 含义N 参数的绝对个数(例如:

    1.2K20

    python包合集-argparse

    一、argparse简介   argparsepython 自带的命令行参数解析包,可以用来方便的服务命令行参数,使用之前需要先导入包 import argparse 二、简单案例   简单使用...% python3 test.py # 此时test.py后面没有跟上参数, args = Namespace(name='Se7eN') # 所以打印出来的name为默认值 Se7eN   ...两个“--”的参数,例如:--name 他就相当于程序,用来接收对对应指令值的变量,例如我们控制台上输入 python3 test.py -n hou。...代码演示: # 导入 argparse 模块 import argparse # 创建一个argparse 的对象 ,并通过prefix_chars 指定指令的前缀为 '+' parser = argparse.ArgumentParser...", description="这是程序的介绍,和usage的功能模块描述类似", epilog="额外说明") # 添加一个接收参数 -n, 并且该参数还必须要接收2个值,会放在一个数组,其中nargs

    39910

    python3 argparse模块

    1、定义:argparsepython标准库里面用来处理命令行参数的库 2、命令行参数分为位置参数和选项参数: 位置参数就是程序根据该参数出现的位置来确定的 如:[root@openstack...(3)parser.add_argument() 向该对象添加你要关注的命令行参数和选项 (4)parser.parse_args() 进行解析 4、argparse.ArgumentParser...# add_argument()指定程序可以接受的命令行选项 args = parser.parse_args() # parse_args()从指定的选项返回一些数据 print(args...,如果choice的类型不是字符串,要指定type 表示该参数能接受的值只能来自某几个值候选值,除此之外会报错,用choice参数即可 parser.add_argument('file', choices...= ['test1', 'test2']) args = parser.parse_args() print('read in %s'%(args.file)) nargs - 指定这个参数后面的

    85550

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

    所以,我找一下有没有合适的库来做这个,有好些的还是。...argparse 使用简单说明 argparse 库功能比较强大,官方中文版资料见:http://python.usyiyi.cn/translate/python_278/library/argparse.html...需要注意的是,教程里面的语法是 python2 的,而我们现在一般学习的都是 python3 吧~ 引用 argparse 库 import argparse 就这样就可以直接引用了。...并且可以同时指定简写或者双横线的全拼,也可以只指定一个。根据你自己的需要来进行设置。...打印帮助信息 我们程序后面加上 -h 这个参数,就可以得到一个我们的程序的详细的帮助信息。这个是 argparse 自带的牛逼功能。省得我们自己去构建帮助信息,我表示非常喜欢。

    1.6K90
    领券