jjzjj

argparser

全部标签

python - 在子命令后允许 argparse 全局标志

我正在使用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

python - 在 argparse 中禁用缩写

argparse在明确的情况下使用每个默认缩写。我不想要缩写,我想禁用它。但是在documentation里面没有找到.这可能吗?示例:importargparseparser=argparse.ArgumentParser()parser.add_argument('--send',action='store_true')parser.parse_args(['--se'])#returnsNamespace(send=True)但我希望只有在提供完整参数时它才为真。防止用户错误。更新:我创建了一个ticketatpythonbugtracker维卡斯回答后。并且已经处理过了。

Python argparse 断言错误

我刚开始使用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

Python argparse : default argument stored as string, 未列出

我无法从文档中找出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

python - 扩展 argparse 以在可选参数选择的帮助文本中写入集合名称,并在末尾定义这些集合

问题示例如果我有一个在多个参数之间共享的有效选项字符串列表,该列表将写在帮助字符串的多个位置。使其更难阅读: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=

python - 如何确定是否在命令行上实际指定了 argparse 参数?

我正在使用arparse使用在命令行上指定的值来更新配置字典。因为我只想更新命令行中明确提到的值的配置中的值。因此,如果getattr(args,action.dest)==action.default或转换后的arg类型是否相等,我会尝试通过检查每个操作来识别未指定的参数。然后我更新字典中的所有值,这是错误的。但这当然会失败,如果我在命令行上明确指定一个与我的默认参数相同的参数。是否有可能使用argparser识别这些明确提到的参数,或者我有在sys.argv中手动识别它们?谢谢!编辑:让我的意图更清晰。我有如下论点:parser.add_argument('--test',defa

python - argparse 接受一切

有没有办法让argparse.ArgumentParser在读取未知选项时不引发异常,而是将所有带有值的未知选项放入字典中,将没有值的那些放入字典中名单?例如,假设在prog.py的解析器中没有定义参数,我传递了两个参数:./prog.py--foobar--baz我想要以下内容:parsed=parser.parse_args()vals=parsed.unknown_with_valsnovals=parsed.unknown_without_valsprint(vals)#{'foo':'bar'}print(novals)#['baz']这可以做到吗?

python - 不要在 argparse 的 print_help() 中两次显示长选项

我有以下代码:parser=argparse.ArgumentParser(description='PostfixQueueAdministrationTool',prog='pqa',usage='%(prog)s[-h][-v,--version]')parser.add_argument('-l','--list',action='store_true',help='Showsfulloverviewofallqueues')parser.add_argument('-q','--queue',action='store',metavar='',dest='queue',hel

python - 依赖于 Argparse 的其他参数的参数

我想完成这样的事情:-LoadFiles-SourceFile""-DestPath""-SourceFolder""-DestPath""-GenericOperation-SpecificOperation-Arga""-Argb""-OtherOperation-Argc""-Argb""-Argc""用户应该能够运行类似的东西:-LoadFiles-SourceFile"somePath"-DestPath"somePath"或-LoadFiles-SourceFolder"somePath"-DestPath"somePath"基本上,如果您有-LoadFiles,您需要在之

python - 从 argparse 解包参数

我一直在编写一些命令行python程序并使用argparse来完成它。我一直在按如下方式构建我的代码。defmain(arg1,arg2):#magicpassif__name__=='__main__':parser=argparse.ArgumentParser()parser.add_argument('arg1')parser.add_argument('arg2')args=parser.parse_args()main(args.arg1,args.arg2)不得不调用arg1和arg23次真的super烦人。我知道必须做两次。有什么方法可以将parse_args函数返回的