jjzjj

argparser

全部标签

python argparse -- 自定义错误信息

我想为使用argparse库的命令行程序中的特定使用错误生成自定义错误消息。我知道我可以通过子类化argparse.ArgumentParser来覆盖错误的一般表示:classHelpParser(argparse.ArgumentParser):deferror(self,message):sys.stderr.write('error:%s\n'%message)sys.exit(2)parser=HelpParser(......)args=parser.parse_args()但是当调用我的error方法时,message已经被库格式化了。例如,>pythonprog.pyol

python - Argparse 子解析器 : hide metavar in command listing

我在我的程序中使用Pythonargparse模块作为命令行子命令。我的代码基本上是这样的:importargparseparser=argparse.ArgumentParser()subparsers=parser.add_subparsers(title="subcommands",metavar="")subparser=subparsers.add_parser("this",help="dothis")subparser=subparsers.add_parser("that",help="dothat")parser.parse_args()运行“pythontest.p

python - 如何限制我的 python 脚本只接受一个参数? (argparse)

我想要一个具有(例如)三个参数的脚本:importargparseparser=argparse.ArgumentParser()parser.add_argument("--a",help="Argumenta")parser.add_argument("--b",help="Argumentb")parser.add_argument("--c",help="Argumentc")args=parser.parse_args()但要让它在任何给定时间只能指定'a'、'b'或'c',例如您可以指定'a'但不能指定'b'或'c'这可能吗?我将如何实现它? 最

python - argparse 添加示例用法

我使用argparse来处理输入参数,它使用parser.print_help()输出以下内容:optionalarguments:-h,--helpshowthishelpmessageandexit-tTEMPLATES,--templatesTEMPLATEStemplatenamestomake,shouldbedefinedassectionnameinconf,andhaverelatedfileintemplates/folder-cCONFPATH,--confpathCONFPATHconfigurationpathfortemplatedetailinfo我的代码如

Python argparse 类似帮助的选项

我正在编写一个带有两个参数和一些选项的python脚本:scriptname[-h][-l][-q|-d]arg1arg2-q(安静)和-d(调试)选项改变冗长级别,-h选项是帮助由argparse自动创建的选项。我希望-l(列表)选项的行为类似于-h选项,因为它不需要(否则强制)存在参数并列出一些有用的信息(不同于-h选项)。实际上,这意味着可以通过以下三种方式调用脚本:scriptmane[-q|-d]arg1arg2scriptname-lscriptname-h两种可能的前进方式是:使参数可选(使用nargs='?')并添加代码以验证在所有存在-l和-h选项的情况下是否有两个参

Python argparse : type inconsistencies when combining 'choices' , 'nargs' 和 'default'

我有以下python程序:#!/usr/bin/envpythonimportargparseparser=argparse.ArgumentParser()parser.add_argument('arg',choices=['foo','bar','baz'],default='foo',nargs='*')args=parser.parse_args()print(args)如果我这样调用程序:./prog.py输出是Namespace(arg='foo')但是如果我用foo作为参数调用程序:./prog.pyfoo输出是Namespace(arg=['foo'])问题如何让ar

python - 如何更改 argparse 中的文本 "optional arguments"

出于某种原因,我不在我的程序中使用位置参数,而是仅接受“可选”参数,通过narg='?'或action等工具控制参数是否真正可选='store_true'。因此,帮助文本中的“可选参数”会产生误导。我可以将它简单地显示为“参数”吗?谢谢。 最佳答案 好吧,查看argparse源代码,在我看来,它就像覆盖parser._optionals的title一样简单,就像这样:parser._optionals.title="mymandatoryarguments,theyareactuallyoptionals,butI'llcheckf

Python 调用使用 argparser 的模块

这可能是一个愚蠢的问题,但我有一个python脚本,当前使用argparser接受一堆参数,我想将这个脚本作为另一个python脚本中的模块加载,这很好。但是我不确定如何调用模块,因为没有定义函数;如果我只是从cmd调用它,我还能像以前那样调用它吗?这是子脚本:importargparseasapfromsubprocessimportPopen,PIPEparser=ap.ArgumentParser(description='Gathersparameters.')parser.add_argument('-f',metavar='--file',type=ap.FileType(

python - argparse 选择允许值的结构

使用关于Pythondependenciesbetweengroupsusingargparse的argparse,我有一个解析器的某个解析器组的参数部分-例如:group_simulate.add_argument('-P',help='simulateFCportdown',nargs=1,metavar='fc_port_name',dest='simulate')如何使用choices将选择限制为下一个结构的参数列表:1:m:"numberbetween1and10":p:"numberbetween1and4"我曾尝试使用范围选项,但找不到创建可接受的选择列表的方法例子:合法

python - 如何创建具有多个位置参数的 argparse 互斥组?

我正在尝试解析命令行参数,使得以下三种可能性成为可能:scriptscriptfile1file2file3…script-ppattern因此,文件列表是可选的。如果指定了-ppattern选项,则命令行上不能有任何其他内容。以“用法”格式说,它可能看起来像这样:script[-ppattern|file[file…]]我想用Python的argparse模块来做这个的方法是这样的:parser=argparse.ArgumentParser(prog=base)group=parser.add_mutually_exclusive_group()group.add_argument