jjzjj

argparse

全部标签

python - 如何使用 argparse 在单独的命名空间中使用子解析器参数?

我有以下测试代码importargparseparser=argparse.ArgumentParser()parser.add_argument("--verbose",default=0,type=int)subparsers=parser.add_subparsers(dest="parser_name")parser_lan=subparsers.add_parser('car')parser_lan.add_argument("--boo")parser_lan.add_argument("--foo")parser_serial=subparsers.add_parser(

python - 如何使用 argparse 取回选项字符串?

parser=argparse.ArgumentParser()parser.add_argument("-p","--pattern",help="Patternfile")args=parser.parse_args()现在可以从args中取回字符串"--pattern"了吗?我需要这个字符串,这样我就可以构建一个cmd列表来传递给Popen,比如Popen(['some_other_program',args.pattern.option_string,args.pattern],...)而无需重复它(并且必须在两个地方维护它)(Popen(['some_other_prog',

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 - 从自定义操作中捕获 ArgumentTypeError 异常

从我自己的自定义操作中抛出ArgumentTypeError异常并让argparse为我捕获它的最佳做法是什么?argparse的try/exceptblock似乎没有为我的自定义操作处理此异常。尽管它的内置操作做得很好。classunique_server_endpoints(argparse.Action):"""ThisclassavoidshavingtwoduplicateOuterIPsintheclientargumentlist"""def__call__(self,parser,namespace,values,option_string=None):ips=set(

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 - 从另一个脚本导入 python 脚本并使用参数运行它

我有一个python脚本,它被打包为一个命令行脚本(dbtoyaml.pyinPyrseas既然你问了)。我正在运行另一个python脚本,我想从中调用这个脚本。有没有办法导入模块并从我的第二个脚本中人为地填充所需的参数来完全避免更改任何pyrseas代码?从pyrseas导入dbtoyaml--我的初始脚本,它也有参数dbtoyaml.main(['-m','-HMYHOSTNAME'....其他选项])还没有为我工作。我得到一个奇怪的错误:usage:checkSchemaChanges.py[-h][-HHOST][-pPORT][-UUSERNAME][-W][-cCONFIG

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