我正在使用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
我正在使用argparse构建带有子命令的命令:mycommand[GLOBALFLAGS]子命令[FLAGS]我希望全局标志在子命令之前或之后都有效。有没有不涉及重复代码的简洁方法?例如:parser=argparse.ArgumentParser()subparsers=parser.add_subparsers(dest='subparser_name')parser.add_argument('--disable')#Thisflag...sp=subparsers.add_parser('compile')sp.add_argument('zones',nargs='*')s
argparse在明确的情况下使用每个默认缩写。我不想要缩写,我想禁用它。但是在documentation里面没有找到.这可能吗?示例:importargparseparser=argparse.ArgumentParser()parser.add_argument('--send',action='store_true')parser.parse_args(['--se'])#returnsNamespace(send=True)但我希望只有在提供完整参数时它才为真。防止用户错误。更新:我创建了一个ticketatpythonbugtracker维卡斯回答后。并且已经处理过了。
我刚开始使用argparse模块。我写了以下简化的片段来演示我遇到的问题。fromargparseimportArgumentParserif__name__=='__main__':parser=ArgumentParser('Testargparse.Thisstringneedstoberelativelylongtotriggertheissue.')parser.add_argument('-f','--fin',help='a',required=True)parser.add_argument('-o','--out',help='b',required=True)par
我无法从文档中找出argparse的这种行为:importargparseparser.add_argument("--host",metavar="",dest="host",nargs=1,default="localhost",help="Nameofhostfordatabase.Defaultis'localhost'.")args=parser.parse_args()print(args)这是带和不带“--host”参数的输出:>>pythondemo.pyNamespace(host='localhost')>>pythondemo.py--hosthostNamesp
问题示例如果我有一个在多个参数之间共享的有效选项字符串列表,该列表将写在帮助字符串的多个位置。使其更难阅读:defmain():elements=['a','b','c','d','e','f']parser=argparse.ArgumentParser()parser.add_argument('-i',nargs='*',choices=elements,default=elements,help='Spaceseparatedlistofcasesensitiveelementnames.')parser.add_argument('-e',nargs='*',choices=