我正在使用arparse使用在命令行上指定的值来更新配置字典。因为我只想更新命令行中明确提到的值的配置中的值。因此,如果getattr(args,action.dest)==action.default或转换后的arg类型是否相等,我会尝试通过检查每个操作来识别未指定的参数。然后我更新字典中的所有值,这是错误的。但这当然会失败,如果我在命令行上明确指定一个与我的默认参数相同的参数。是否有可能使用argparser识别这些明确提到的参数,或者我有在sys.argv中手动识别它们?谢谢!编辑:让我的意图更清晰。我有如下论点:parser.add_argument('--test',defa
有没有办法让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']这可以做到吗?
我有以下代码: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
我想完成这样的事情:-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来完成它。我一直在按如下方式构建我的代码。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函数返回的
我正在尝试编写一个函数wo,您可以通过argparse解析可变数量的参数-我知道我可以通过nargs="+"来做到这一点。遗憾的是,argparse帮助的工作方式(以及人们通常在CLI中编写参数的方式)将位置参数放在最后。这导致我的位置参数被捕获为可选参数的一部分。#!/usr/bin/pythonimportargparseparser=argparse.ArgumentParser()parser.add_argument("positional",help="mypositionalarg",type=int)parser.add_argument("-o","--optiona
我有一组论据,在逻辑上可以分为两组:Action:A1、A2、A3等信息:I1、I2、I3等程序启动至少需要这些参数之一,但“信息”参数可以与“操作”参数一起使用。所以Actions或Informations中至少有一项是必需的所有的Action都是互斥的我找不到使用argparse的方法。我知道add_mutually_exclusive_group及其required参数,但我不能在“Actions”上使用它,因为它实际上并不是必需的。当然,我可以在argparse之后添加一个条件来手动检查我的规则,但这似乎是一种hack。argparse可以做到这一点吗?编辑:抱歉,这里有一些例
我有一组论据,在逻辑上可以分为两组:Action:A1、A2、A3等信息:I1、I2、I3等程序启动至少需要这些参数之一,但“信息”参数可以与“操作”参数一起使用。所以Actions或Informations中至少有一项是必需的所有的Action都是互斥的我找不到使用argparse的方法。我知道add_mutually_exclusive_group及其required参数,但我不能在“Actions”上使用它,因为它实际上并不是必需的。当然,我可以在argparse之后添加一个条件来手动检查我的规则,但这似乎是一种hack。argparse可以做到这一点吗?编辑:抱歉,这里有一些例
这是一个示例代码:importargparseparser=argparse.ArgumentParser()parser.add_argument('-main_arg')subparser=parser.add_subparser()a=subparser.add_parser('run')a.add_argument('required_sub_arg')a.add_argument('arg_a')b=subparser.add_parser('b')parser.parse_args()如果我输入programrunrequired_sub_arg-main_arg-arg_
这是一个示例代码:importargparseparser=argparse.ArgumentParser()parser.add_argument('-main_arg')subparser=parser.add_subparser()a=subparser.add_parser('run')a.add_argument('required_sub_arg')a.add_argument('arg_a')b=subparser.add_parser('b')parser.parse_args()如果我输入programrunrequired_sub_arg-main_arg-arg_