| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> Python3中使用argparse模块解析命令行参数 -> 正文阅读 |
|
[Python知识库]Python3中使用argparse模块解析命令行参数 |
? ? ? argparse是Python的一个标准模块,用于解析命令行参数,即解析sys.argv中定义的参数。实现在:https://github.com/python/cpython/blob/main/Lib/argparse.py ? ? ? argparse模块还会自动生成帮助和使用信息,即在最后加-h或--help。当用户输入的参数无效时,会触发error,并给出出错原因。
? ? ? 使用argparse的步骤: ? ? ? 1.创建解析器:argparse.ArgumentParser(),ArgumentParser是个class,构造它时有很多参数可以指定,若不指定这些参数都使用默认值,如description=None:此python程序功能的描述;add_help=True:添加-h/--help选项
? ? ? 2.添加参数:parser.add_argument(*args, **kwargs):*args允许函数接受任意数量的位置参数(positional arguments),**kwargs允许函数接受任意数量的关键字参数。Python不允许位置参数跟在关键字参数之后。 ? ? ? (1).name or flags:一个名字,位置参数(positional arguments),不带有"-"或"--",如foo;一个可选字符串的列表,如-f, --foo。当parse_args()被调用时,可选参数会以"-"前缀识别,剩下的参数则会被假定为位置参数。
? ? ? ? ? ? ?(2).action:ArgumentParser对象将命令行参数与action相关联。这些action可以做与它们相关联的命令行参数的任何事,尽管大多数action只是简单的向parse_args()返回的对象上添加一个属性。action关键字参数指定应如何处理命令行参数。默认的action是"store",存储参数的值。 ? ? ? (3).nargs:此关键字参数将不同数量的命令行参数与单个操作相关联。 ? ? ? "?":如果不存在命令行参数,则会使用default值;还有一种情况,"-"选项字符串存在,但后面没有跟着命令行参数,则会使用const值。 ? ? ? "*":所有命令行参数都收集到一个列表中。 ? ? ? "+":与"*"类似,但至少存在一个命令行参数,否则会产生错误消息。
? ? ? ? ? ? ?(4).const:此关键字参数用于保存不是从命令行中读取但被各种ArgumentParser操作所需的常量值。对'store_const'和'append_const' action,const关键字参数必须给出;对其它action,默认为None。 ? ? ? (5).default:此关键字参数用于在命令行参数不存在应使用的值,默认值为None。 ? ? ? (6).type:此关键字参数允许执行任何必要的类型检查和类型转换。 ? ? ? (7).choices:某些命令行参数应当从一组受限值中选择,这些可以通过将容器对象作为choices关键字参数传递给add_argument()来处理。当执行命令行解析时,参数值将被检查,如果参数不是可接受的值之一将触发错误消息。
? ? ? ? ? ? ?(8).required:通常,argparse模块假定"-f"和"--bar"等标志表示可选参数,在命令行中始终可以省略这些参数。要让一个选项成为必需的,则可以将required关键字参数指定为True。 ? ? ? (9).help:包含参数简短描述的字符串。通常在命令行中使用-h或--help时,这些help描述将与每个参数一起显示。 ? ? ? (10).metavar:当ArgumentParser生成帮助消息时,它需要某种方式来引用每个预期的参数。默认情况下,ArgumentParser对象使用dest值作为每个对象的"name"。默认情况下,对于位置参数action,直接使用dest值,对于可选参数action,dest值是大写的。可以使用metavar来指定一个替代名称。
? ? ? ? ? ? (11).dest:大多数ArgumentParser操作都会添加一些值作为parse_args()返回的对象的一个属性。此属性的名称由add_argument()的dest关键字参数确定。 ? ? ? 3.解析参数:parser.parse_args(),将参数字符串转换为对象并将其设为命名空间的属性,返回带有成员的命名空间。 ? ? ? 更多介绍参考:https://docs.python.org/zh-cn/3.8/library/argparse.html ? ? ? GitHub:https://github.com/fengbingchun/Python_Test |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/26 13:40:02- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |