草庐IT

ArgParse

全部标签

python - 带有 argparse 的 Python 中的可选标准输入

我发现了非常有用的语法parser.add_argument('-i','--input-file',type=argparse.FileType('r'),default='-')用于指定输入文件或使用标准输入——这两者都是我想要在我的程序中使用的。但是,并不总是需要输入文件。如果我不使用-i或使用其中之一重定向输入$someprog|my_python_prog$my_python_prog我不希望我的Python程序等待输入。我希望它继续前进并使用默认值。 最佳答案 标准库documentationforargparse建议此

python - 允许 Argparse 参数的特定值

这个问题在这里已经有了答案:Restrictingvaluesofcommandlineoptions(1个回答)关闭5年前。是否可以要求argparse参数是几个预设值之一?我目前的方法是手动检查参数,如果它不是允许的值之一,请调用print_help()然后退出。这是当前的实现:...parser.add_argument('--val',help='Specialtestingvalue')args=parser.parse_args(sys.argv[1:])ifargs.valnotin['a','b','c']:parser.print_help()sys.exit(1)并

python - 如果未指定,则 argparse 存储 false

parser.add_argument('-auto',action='store_true')如果-auto未指定,我如何存储false?我依稀记得这样,如果未指定,它会存储None 最佳答案 store_true选项自动创建默认值False。同样,当命令行参数不存在时,store_false将默认为True。此行为的来源简洁明了:http://hg.python.org/cpython/file/2.7/Lib/argparse.py#l861argparse文档在这个主题上不清楚,所以我现在更新它们:http://hg.pyt

python - 检查是否设置了 argparse 可选参数

我想检查用户是否设置了可选的argparse参数。我可以使用isset安全地检查吗?类似这样的:if(isset(args.myArg)):#dosomethingelse:#dosomethingelse这对于float/int/string类型的参数是否同样有效?我可以设置一个默认参数并检查它(例如,设置myArg=-1,或“”为字符串,或“NOT_SET”)。但是,我最终要使用的值仅在脚本的后面计算。因此,我会将其默认设置为-1,然后稍后将其更新为其他内容。与简单地检查值是否由用户设置相比,这似乎有点笨拙。 最佳答案 我认为如

python - 使用 Python argparse 创建隐藏参数

是否可以在python中添加参数argparse.ArgumentParser没有它出现在用法或帮助中(script.py--help)? 最佳答案 是的,您可以将help选项设置为add_argument到argparse.SUPPRESS。这是argparsedocumentation中的一个示例:>>>parser=argparse.ArgumentParser(prog='frobble')>>>parser.add_argument('--foo',help=argparse.SUPPRESS)>>>parser.prin

python - 在 argparse 中有一个带有破折号的选项

我想在argparse模块中有一些选项,例如--pm-export但是当我尝试像args.pm-export一样使用它时,我得到了错误没有属性pm。我该如何解决这个问题?是否可以在命令行选项中有-? 最佳答案 作为indicatedintheargparsedocs:Foroptionalargumentactions,thevalueofdestisnormallyinferredfromtheoptionstrings.ArgumentParsergeneratesthevalueofdestbytakingthefirstlo

python - 使用 argparse 需要两个参数之一

给定:importargparsepa=argparse.ArgumentParser()pa.add_argument('--foo')pa.add_argument('--bar')printpa.parse_args('--foo1'.split())我该怎么做强制要求“foo,bar”中的至少一项:--foox、--bary和--foox--bary没问题强制设置最多一个"foo,bar":--foox或--bary都可以,--foox--bary不是 最佳答案 我认为您正在搜索类似mutualexclusion的内容(至少

Python argparse 忽略无法识别的参数

Optparse,旧版本只是忽略所有无法识别的参数并继续。在大多数情况下,这并不理想,并且在argparse中进行了更改。但在某些情况下,您希望忽略任何无法识别的参数并解析您指定的参数。例如:parser=argparse.ArgumentParser()parser.add_argument('--foo',dest="foo")parser.parse_args()$pythonmyscript.py--foo1--bar2error:unrecognizedarguments:--bar有没有办法覆盖这个? 最佳答案 替换ar

python - 将 Python argparse.Namespace() 视为字典的正确方法是什么?

如果我想使用argparse.ArgumentParser()的结果,它是一个Namespace对象,其方法需要一个字典或类似映射的对象(请参阅collections.Mapping),正确的做法是什么?C:\>pythonPython2.7.3(default,Apr102012,23:31:26)[MSCv.150032bit(Intel)]onwin32Type"help","copyright","credits"or"license"formoreinformation.>>>importargparse>>>args=argparse.Namespace()>>>args.

python - Argparse:在 '--help' 中包含默认值的方法?

假设我有以下argparse片段:diags.cmdln_parser.add_argument('--scan-time',action='store',nargs='?',type=int,default=5,help="WaitSCAN-TIMEsecondsbetweenstatuschecks.")目前,--help返回:usage:connection_check.py[-h][--version][--scan-time[SCAN_TIME]]Testthereliability/uptimeofaconnection.optionalarguments:-h,--hel