【python argparse】教程文章相关的互联网学习教程文章

Python argparse与nargs行为不正确【代码】

这是我的argparse示例说sample.pyimport argparse parser = argparse.ArgumentParser() parser.add_argument("-p", nargs="+", help="Stuff") args = parser.parse_args() print argsPython – 2.7.3 我希望用户提供-p选项后用空格分隔的参数列表.例如,如果你跑$sample.py -p x y Namespace(p=['x', 'y'])但我的问题是,当你跑$sample.py -p x -p y Namespace(p=['y'])这既不是在这里也不是在那里.我想要以下之一 >向用户抛出异常...

python – 为argparse和optparse禁用唯一的前缀匹配【代码】

当我使用Python的argparse或optparse命令行参数解析器时,参数的任何唯一前缀都被认为是有效的,例如$./buildall.py --help usage: buildall.py [-h] [-f]Build all repositoriesoptional arguments:-h, --help show this help message and exit-f, --force Build dirty repositories与–help, – hel, – he一起使用help选项以及–forc和–fo for force选项. 可以以某种方式关闭此行为吗?我想获得不完整参数的错误消息.解决方...

python – 使用argparse在我的脚本中运行2个函数中的1个【代码】

我目前在.py脚本中有2个函数. #1连接到数据库并进行一些处理. #2对文件进行了一些其他处理 目前在运行脚本之前,我必须手动注释/取消注释我想在主if语句块中运行的函数. 我怎样才能使用argparse,所以当我运行脚本时它会询问我运行哪个函数?解决方法:通过action =’store_const’和const =< stuff>,可以直接告诉ArgumentParser对象关于具有所需行为的函数或对象.在add_argument()调用中或使用set_defaults()调用时(后者在使用子解析...

python – 是否可以只使用argparse解析一个参数组的参数?【代码】

我想做这样的事情:parser = argparse.ArgumentParser()group1 = parser.add_argument_group('group1') group1.add_argument('--test1', help="test1")group2 = parser.add_argument_group('group2') group2.add_argument('--test2', help="test2")group1_args = group1.parse_args() group2_args = group2.parse_args()但是,我收到以下错误:Traceback (most recent call last):File "test.py", line 19, in <module>group1_args ...

python – argparse参数依赖项【代码】

如果我使用以下选项调用下面的脚本:--user u1 --password p1 --foo f1 --user u2 --user u3 --password p3然后它将打印:Namespace(foo=['bar', 'f1'], password=['p1', 'p3'], user=['u1', 'u2', 'u3'])问题:我有没有办法在用户和密码之间建立依赖关系,因此会抛出错误,因为没有指定用户u2的密码? 不太相关的问题:如何为所有用户指定默认的foo值?对于给定的输入,我希望foo等于[‘f1′,’bar’,’bar’]. 我的主要问题的解...

python – 是否可以使用argparse捕获任意一组可选参数?【代码】

是否可以使用argparse捕获任意一组可选参数? 例如,以下两者都应被接受为输入:python script.py required_arg1 --var1 value1 --var2 value2 --var3 value3python script.py required_arg1 --varA valueA --var2 value2 --varB valueB先验我不知道将指定哪些可选参数接收但会相应地处理它们.解决方法:这是一种hackish方式,但它运作良好: 检查,未添加哪些参数并添加它们parser=argparse.ArgumentParser() parser.add_argument("fo...

python – argparse – 禁用相同的参数出现【代码】

我正在尝试使用argparse在一个命令行中禁用相同的参数出现./python3 --argument1=something --argument2 --argument1=something_else这意味着这应该引发一个错误,因为argument1的值被覆盖,默认情况下,argparse只是覆盖了值并且继续没有发生任何事情……有什么聪明的方法如何禁用这种行为?解决方法:我不认为使用argparse可以使用本机方法,但幸运的是,argparse提供了报告自定义错误的方法.最优雅的方法可能是定义一个自定义操作来检...

python – argparse选择允许值的结构【代码】

使用与Python dependencies between groups using argparse相关的argparse,我有一个解析器的一些解析器组的参数 – 例如:group_simulate.add_argument('-P',help='simulate FC port down',nargs=1,metavar='fc_port_name',dest='simulate')如何使用choices将选项限制为下一个结构的参数列表:1:m:"number between 1 and 10":p:"number between 1 and 4"我曾尝试使用范围选项,但我找不到一种方法来创建可接受的选项列表 例子:法律...

python – 具有嵌套命名空间的argparse子命令【代码】

argparse是否提供了内置工具,可以将组或解析器解析为自己的命名空间?我觉得我必须在某个地方错过一个选项. 编辑:这个例子可能不是我应该做的,以构建解析器来实现我的目标,但这是我迄今为止所做的.我的具体目标是能够为子解析器提供被解析为命名空间字段的选项组.我与父母的想法只是为了同样的目的使用共同的选项. 例:import argparse# Main parser main_parser = argparse.ArgumentParser() main_parser.add_argument("-common"...

为什么这个argparse代码在Python 2和3之间表现不同?【代码】

下面的代码,使用argparse的subparsers,在Python 3上失败,但在Python 2中按预期运行.在比较文档后,我仍然无法说明原因.#!/usr/bin/env python from __future__ import print_function from argparse import ArgumentParserdef action(args):print(args)if __name__ == '__main__':std = ArgumentParser(add_help=False)std.add_argument('standard')ap = ArgumentParser()sp = ap.add_subparsers()cmd = sp.add_parser('subcommand'...

如何将python的argparse与预定义的参数字符串一起使用?【代码】

我想使用pythons argparse模块来解析我的cli参数字符串.这适用于从终端传递的参数,但不适用于给定的字符串.import argparseparser = argparse.ArgumentParser(description='Argparse Test script') parser.add_argument("param", help='some parameter')argString = 'someTestFile' print(argString)args = parser.parse_args(argString)如果我运行此脚本,我得到此输出:~/someTestFile usage: argparsetest.py [-h] param argpars...

如何创建Python命名空间(argparse.parse_args值)?【代码】

为了交互式地测试我的python脚本,我想创建一个Namespace对象,类似于argparse.parse_args()返回的对象.显而易见的方式,>>> import argparse >>> parser = argparse.ArgumentParser() >>> parser.parse_args() Namespace() >>> parser.parse_args("-a") usage: [-h] : error: unrecognized arguments: - aProcess Python exited abnormally with code 2可能导致Python repl退出(如上所述)一个愚蠢的错误. 那么,使用给定属性集创建Pyt...

python – Argparse – 不要用`nargs’捕获位置参数.【代码】

我正在尝试编写一个函数wo,你可以通过argparse解析可变数量的参数 – 我知道我可以通过nargs =“”来做到这一点.遗憾的是,argparse帮助的工作方式(以及人们通常在CLI中编写参数的方式)将位置参数放在最后.这导致我的位置参数被捕获为可选参数的一部分.#!/usr/bin/python import argparseparser = argparse.ArgumentParser() parser.add_argument("positional", help="my positional arg", type=int) parser.add_argument("-o", "--...

python – 简单的argparse示例通缉:1个参数,3个结果【代码】

argparse python module的documentation虽然非常出色,但我确信,对于我的小初学者大脑来说,这对我来说太过分了.我不需要在命令行上进行数学运算,也不需要在屏幕上使用格式化线条或更改选项字符.我想要做的就是“如果arg是A,那么,如果B这样做,如果以上都不显示帮助并退出”.解决方法:我对原始问题的理解是双重的.首先,就最简单的argparse示例而言,我很惊讶我在这里没有看到它.当然,简单来说,它也是所有开销,但功率很小,但它可能会让你...

python argparse【代码】

在storm_control尝试中: python hal4000.py xml/none_config.xml我很少看见像这样在.py文件后加文件运行python程序的,当然一开始我并没有在意,直到遇到了bug… usage: pydevconsole.py [-h] [--xml DEFAULT_XML] config pydevconsole.py: error: the following arguments are required: config无论我怎样谷歌,都定位不到我的错误。搜出来频率最多的是argparse ,于是不得不认真看了一下。才知道来龙去脉 argparse argparse是py...