argparse相关内容

在 argparse 中使用变量 arg 名称

我有一个上游系统,它使用不同的 arg 名称调用我的程序.示例: foo --xyz1 10 --xyz2 25 --xyz3 31 我希望 argparsing 的结果是 xyz = [10, 25, 31]. 我的 args 的名称有一个共同的前缀,但不幸的是,至少必须有不同的数字后缀,这也表示顺序.我也没有固定数量的参数. 有没有办法用 argparse 对此进行建模?或者通 ..
发布时间:2021-11-17 04:46:56 Python

Python argparse 以 -- 作为值

有没有办法使用 argparse 将 -- 作为值传递给 Python 程序而不使用等号 (=)? 我添加到 argparser 的命令行参数定义如下: parser.add_argument('--myarg', help="my arg description") 你会在这样的程序中使用这个参数: python myprogram.py --myarg value123 有没有办 ..
发布时间:2021-11-17 04:46:53 Python

我可以检查一个值是由默认值提供的还是由用户提供的?

在使用 argparse 时,有没有办法判断一个字段是否具有值,因为用户指定了它,还是因为它没有被指定并获得了默认值?注意:我还想考虑用户明确指定默认值的情况. 我想使用 argparse 来处理命令行参数,我想使用 formatter_class=argparse.ArgumentDefaultsHelpFormatter 来显示字段的默认值未指定的.另外,我想从配置文件中读取值. ..
发布时间:2021-11-17 04:46:50 Python

argparse nargs="+"正在吃位置参数

这是我的解析器配置的一个小节 parser.add_argument('infile', help="要导入的文件",type=argparse.FileType('r'), 默认=sys.stdin)parser.add_argument('--carpark', nargs='+', dest='CarparkID', type=int, default=[],help="一个或多个停车场 ..
发布时间:2021-11-17 04:46:47 Python

Python Argparse - 基于另一个参数的值有条件地需要参数

我正在尝试编写一个守护程序服务,该服务可以在命令行中进行控制.比如启动服务 python3 test.py -c start -d/mydownloadfolder/-j/myconfig.json 停止服务, python3 test.py -c stop -d -j 参数仅在我启动服务时才需要.因此,我需要根据另一个参数的值来实现有条件要求的参数. 我进行了一些搜 ..
发布时间:2021-11-17 04:46:44 Python

argparse:不要在 -h 上显示用法

代码 from argparse import ArgumentParserp = ArgumentParser(description = 'foo')p.add_argument('-b', '--bar', help = 'a description')p.parse_args() ...导致输出: $ python argparsetest.py -h用法:argparsetest. ..
发布时间:2021-11-17 04:46:41 Python

Python argparse - 禁用子命令的帮助?

我在 Python 3.5.1 上使用 argparse.我不想要默认的帮助命令,所以我使用 ArgumentParser 构造函数的 add_help=False 参数禁用了它.然而,虽然删除了应用程序的帮助命令,但它们仍然存在于子命令中.如何删除子命令/子解析器的帮助? 解决方案 子解析器创建于: class _SubParsersAction(Action):....def add ..
发布时间:2021-11-17 04:46:38 Python

如何在使用 argparse 的文件上使用指定的测试目录运行 pytest?

我正在使用 pytest 为 Python 库编写单元测试我需要为测试文件指定一个目录以避免自动发现测试文件,因为有一个很大的子目录结构,包括库中包含“_test"或“test_"的许多文件在名称中,但不适用于 pytest 库中的某些文件使用 argparse 来指定命令行选项 问题是将 pytest 的目录指定为命令行参数似乎会干扰使用 argparse 的命令行选项 举个例子,我 ..
发布时间:2021-11-17 04:46:35 Python

Python argparse --toggle --no-toggle 标志

是否有一种直接的方法可以在 Python 的 argparse 中使用 --toggle 和 --no-toggle 标志? 现在我正在使用类似于以下内容的内容: 导入 argparse解析器 = argparse.ArgumentParser()parser.add_argument('--toggle',动作='store_true',dest='切换')parser.add_argu ..
发布时间:2021-11-17 04:46:32 Python

来自无限集合的 Python argparse 选择

我有以下代码来创建一个容器,它伪装成所有质数的集合(实际上隐藏了一个记忆的蛮力质数测试) 导入数学def is_prime(n):如果 n == 2 或 n == 3:返回真如果 n == 1 或 n % 2 == 0:返回错误别的:return all(n % i for i in xrange(3, int(1 + math.sqrt(n)), 2))类素数(对象):def __init__ ..
发布时间:2021-11-17 04:46:26 Python

将 argparse 别名解析回原始命令

我正在使用具有别名的子解析器/子命令. 我正在使用子解析器的 dest 选项来存储子命令的名称,以便我以后可以获取它. 当前,如果子命令的名称是 reallyLongName 并且别名是 r(比如说),则 dest 选项存储 reallyLongName 或 r 完全正确 - 我输入的任何内容都会被存储.这很烦人,因为我现在必须检查命令的名称或其任何别名以识别命令. 有没有办法让 ..
发布时间:2021-11-17 04:46:23 Python

如何在组中显示 argparse 子命令?

对于具有许多子命令的程序,我想在 --help 输出中按逻辑分组显示它们.Python argparse 有一个 add_argument_group 方法,但它似乎与子解析器不兼容.子解析器只能添加到顶级ArgumentParser,并且_SubParsersAction 不允许参数组.有没有办法解决这个问题? 解决方案 除了实现自定义 HelpFormatter 之外,您无法真正以任何 ..
发布时间:2021-11-17 04:46:20 Python

Python Unicode 编码

我正在使用 argparse 来读取我的 Python 代码的参数.这些输入之一是文件 [title] 的标题,它可以包含 Unicode 字符.我一直用22少女时代22作为测试字符串. 我需要将输入 title 的值写入文件,但是当我尝试将字符串转换为 UTF-8 时,它总是抛出错误: UnicodeDecodeError: 'ascii' 编解码器无法解码位置 2 中的字节 0x8 ..
发布时间:2021-11-17 04:46:14 Python

python 3中缺少argparse

有人知道,为什么 argparse 模块没有在 python 3 中实现?它是 python 2.7 中的新功能,但 2.x 分支在 2.7 中用完了.在实际的 python 3 分支中不支持它对我来说毫无意义. 解决方案 它将在 Python 3.2 中.它刚刚添加到 Python 2.7 中,Python 2.7 刚刚于今年 7 月发布;Python 3.2 将是该日期之后的下一个 3 ..
发布时间:2021-11-17 04:46:05 Python

从外部模块添加 argparse 参数

我正在尝试编写可由第三方扩展的 Python 程序.该程序将使用提供的任何参数从命令行运行. 为了允许第三方创建自己的模块,我创建了以下(简化的)基类: class MyBaseClass(object):def __init__(self):self.description = ''self.command = ''def get_args(self):# 我不知道在此处指定 argpa ..
发布时间:2021-11-17 04:45:57 Python

命令行选项:应该将短选项限制为 1 个字符吗?

我正在尝试了解 Python 的命令行参数,并且一直在阅读有关 argparse 模块.他们提到了短格式和长格式命令行选项的概念,短格式选项用单个破折号指定,-(例如 -f),并指定长格式选项带有两个破折号,--(例如 --filename). 没有任何地方描述短格式和长格式选项之间的区别,只是一个明显比另一个短.在谷歌搜索概念后,在我看来,短格式选项起源于很久以前的 C.当时它们是一个字符 ..
发布时间:2021-11-17 04:45:54 Python