jjzjj

argparser

全部标签

python - argparse:如何允许多个值覆盖默认值

这与questionaboutallowinganargumenttobespecifiedmultipletimes中涵盖的主题略有相关.我希望能够像这样多次指定一个选项:tool--foo1--foo2--foo3还有这样的:toolabc我也想同时支持两者:toolabc--foo1--foo2--foo3这适用于:importargparseparser=argparse.ArgumentParser()parser.add_argument('foo',nargs='*',action='append')parser.add_argument('--foo',nargs='*

python - argparse(和已弃用的 optparse)如何在 bash 中响应 python 程序名称后的 'tab' 按键?

我测试了optcomplete使用optparse模块。它的例子是一个简单的文件,所以我可以让它工作。我还使用argparse模块对其进行了测试,因为不推荐使用之前的模块。但我真的不明白python程序是如何以及由谁在Tab键上被调用的。我怀疑bash连同shebang行和argparse(或optparse)模块以某种方式参与。我一直在努力解决这个问题(现在要阅读源代码)。我有一个稍微复杂一点的程序结构,其中包括一个围绕处理参数的代码段的包装器。它的argparse.ArgumentParser()实例化和对add_argument()的调用——它们被父类(superclass)化到

python - 如何让 Python Argparse 只列出一次选项?

我的代码如下所示:list_of_choices=["foo","bar","baz"]parser=argparse.ArgumentParser(description='somedescription')parser.add_argument("-n","--name","-o","--othername",dest=name,choices=list_of_choices我得到的输出是这样的:-n{foo,bar,baz},--name{foo,bar,baz},-o{foo,bar,baz},--othername{foo,bar,baz}我想要的是:-n,--name,-o

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

以下代码使用argparse的子解析器,在Python3上失败,但在Python2上按预期运行。比较文档后,我仍然不知道为什么。#!/usr/bin/envpythonfrom__future__importprint_functionfromargparseimportArgumentParserdefaction(args):print(args)if__name__=='__main__':std=ArgumentParser(add_help=False)std.add_argument('standard')ap=ArgumentParser()sp=ap.add_subpa

python - argparse 中 --default 和 --store_const 的区别

我在argparse中阅读了以下内容文档:'store_const'-Thisstoresthevaluespecifiedbytheconstkeywordargument.(NotethattheconstkeywordargumentdefaultstotheratherunhelpfulNone.)The'store_const'actionismostcommonlyusedwithoptionalargumentsthatspecifysomesortofflag.Forexample:>>>parser=argparse.ArgumentParser()>>>parser

Python argparse 位置参数和子命令

我正在使用argparse并尝试混合使用子命令和位置参数,但出现了以下问题。这段代码运行良好:importargparseparser=argparse.ArgumentParser()subparsers=parser.add_subparsers()parser.add_argument('positional')subparsers.add_parser('subpositional')parser.parse_args('subpositionalpositional'.split())上面的代码将args解析为Namespace(positional='positional'

python - 带有嵌套命名空间的 argparse 子命令

是否argparse提供内置工具让它将组或解析器解析到它们自己的命名空间中?我觉得我一定是在某处遗漏了一个选项。编辑:这个例子可能不是我应该做的来构建解析器来满足我的目标,但这是我到目前为止所做的。我的具体目标是能够为子解析器提供解析为命名空间字段的选项组。我和parent的想法只是为了同样的目的使用通用选项。例子:importargparse#Mainparsermain_parser=argparse.ArgumentParser()main_parser.add_argument("-common")#filterparserfilter_parser=argparse.Argu

Python - 将参数从 Argparse 传递给不同的方法

我正在编写一个相对简单的Python脚本,它支持几个不同的命令。不同的命令支持不同的选项,我希望能够将argparse解析的选项传递给指定命令的正确方法。用法字符串如下所示:usage:script.py[-h]{a,b,c}...script.py:error:toofewarguments我可以很容易地调用适当的方法:defa():...defb():...defc():...if__name__=="__main__":parser=argparse.ArgumentParser()parser.set_defaults(method=a)...arguments=parser.

具有依赖关系的python argparse

我正在编写一个脚本,其中包含2个相互排斥的参数,以及一个仅对其中一个参数有意义的选项。如果您使用毫无意义的参数调用它,我会尝试将argparse设置为失败。要清楚:-m-f有意义-s有道理-s-f应该抛出错误没有参数是可以的。我的代码是:parser=argparse.ArgumentParser(description='Lookupserversbyipaddressfromhostfile')parser.add_argument('host',nargs=1,help="ipaddresstolookup")main_group=parser.add_mutually_excl

python - argparse - 组合父解析器、子解析器和默认值

我想在脚本中定义不同的子解析器,它们都从一个共同的父级继承选项,但具有不同的默认值。但是,它没有按预期工作。这是我做的:importargparse#thisisthetoplevelparserparser=argparse.ArgumentParser(description='blabla')#thisservesasaparentparserbase_parser=argparse.ArgumentParser(add_help=False)base_parser.add_argument('-n',help='number',type=int)#subparserssubpa