程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

禁用argparse和optparse的唯一前缀匹配

发布于2019-09-11 19:40     阅读(683)     评论(0)     点赞(27)     收藏(2)


当我使用Python的argparse或optparse命令行参数解析器时,参数的任何唯一前缀都被认为是有效的,例如

$ ./buildall.py --help
usage: buildall.py [-h] [-f]

Build all repositories

optional arguments:
  -h, --help   show this help message and exit
  -f, --force  Build dirty repositories

作品有--help--hel--he的帮助选项,以及--forc--fo为强制选项。

可以以某种方式关闭此行为吗?我想获得不完整参数的错误消息。


解决方案


禁用缩写长选项的功能仅在Python 3.5中添加。argparse文档

parse_args()方法在默认情况下允许长选项被缩写为前缀,如果缩写是明确的(前缀匹配的唯一选项)... 此功能可通过设置被禁用allow_abbrevFalse

因此,如果您使用的是Python 3.5,则可以使用以下命令创建解析器allow_abbrev=False

parser = argparse.ArgumentParser(..., allow_abbrev=False)

如果您使用的是optparse或3.5之前的argparse,您只需要使用缩写选项。



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:https://www.pythonheidong.com/blog/article/108044/d0f7ea6bd3bbd78b0eaa/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

27 0
收藏该文
已收藏

评论内容:(最多支持255个字符)