这与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='*
我测试了optcomplete使用optparse模块。它的例子是一个简单的文件,所以我可以让它工作。我还使用argparse模块对其进行了测试,因为不推荐使用之前的模块。但我真的不明白python程序是如何以及由谁在Tab键上被调用的。我怀疑bash连同shebang行和argparse(或optparse)模块以某种方式参与。我一直在努力解决这个问题(现在要阅读源代码)。我有一个稍微复杂一点的程序结构,其中包括一个围绕处理参数的代码段的包装器。它的argparse.ArgumentParser()实例化和对add_argument()的调用——它们被父类(superclass)化到
我的代码如下所示: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
以下代码使用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
我在argparse中阅读了以下内容文档:'store_const'-Thisstoresthevaluespecifiedbytheconstkeywordargument.(NotethattheconstkeywordargumentdefaultstotheratherunhelpfulNone.)The'store_const'actionismostcommonlyusedwithoptionalargumentsthatspecifysomesortofflag.Forexample:>>>parser=argparse.ArgumentParser()>>>parser
我正在使用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'
是否argparse提供内置工具让它将组或解析器解析到它们自己的命名空间中?我觉得我一定是在某处遗漏了一个选项。编辑:这个例子可能不是我应该做的来构建解析器来满足我的目标,但这是我到目前为止所做的。我的具体目标是能够为子解析器提供解析为命名空间字段的选项组。我和parent的想法只是为了同样的目的使用通用选项。例子:importargparse#Mainparsermain_parser=argparse.ArgumentParser()main_parser.add_argument("-common")#filterparserfilter_parser=argparse.Argu
我正在编写一个相对简单的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.
我正在编写一个脚本,其中包含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
我想在脚本中定义不同的子解析器,它们都从一个共同的父级继承选项,但具有不同的默认值。但是,它没有按预期工作。这是我做的:importargparse#thisisthetoplevelparserparser=argparse.ArgumentParser(description='blabla')#thisservesasaparentparserbase_parser=argparse.ArgumentParser(add_help=False)base_parser.add_argument('-n',help='number',type=int)#subparserssubpa