失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 8145v5 参数_Python中最好用的命令行参数解析工具

8145v5 参数_Python中最好用的命令行参数解析工具

时间:2019-03-29 10:09:59

相关推荐

8145v5 参数_Python中最好用的命令行参数解析工具

Python 做为一个脚本语言,可以很方便地写各种工具。当你在服务端要运行一个工具或服务时,输入参数似乎是一种硬需(当然你也可以通过配置文件来实现)。

如果要以命令行执行,那你需要解析一个命令行参数解析的模块来帮你做这个苦力活。

Python 本身就提供了三个命令行参数解析模块,我这里罗列一下它们的大致情况供你了解。

getoptoptparseargparse

很多初学者可能会使用 getopt ,上手简单功能也简单。比如说 optget 无法解析一个参数多个值的情况,如 --file file1 file2 file3 ,而 optparse 实际上我没有用过,但是考虑到它在Python2.7后就已经弃用不再维护,我们通常也不会使用它。

接下来只剩下 argparse 这一神器,它几乎能满足我对命令解析器的所有需求。它支持解析一参数多值,可以自动生成help命令和帮助文档,支持子解析器,支持限制参数取值范围等等功能。

身为老司机,还是得分享些干货精品学习资料的,推荐下小编创建的Python学习交流群556370268,这里都是一群爱好Python的小伙伴,每天还会直播和大家交流分享经验哦。

1、HelloWorld

不管学习什么东西,首先第一步都应该是掌握它的大体框架。

而 使用 argparse 前,框架很简单,你只需要记住这三行。

# mytest.pyimport argparseparser = argparse.ArgumentParser(description="used for test")args = parser.parse_args()

现在可以尝试一下

[root@localhost ~]# python mytest.py -husage: mytest.py [-h]used for testoptional arguments: -h, --help show this help message and exit[root@localhost ~]# [root@localhost ~]# [root@localhost ~]# python mytest.py[root@localhost ~]#

已经可以使用了。

1. 入门配置

这里先讲一下,比较常用的参数配置。

调试:debug版本号:version

import argparseparser = argparse.ArgumentParser()parser.add_argument('--version', '-v', action='version', version='%(prog)s version : v 0.01', help='show the version')parser.add_argument('--debug', '-d', action='store_true', help='show the version', default=False)args = parser.parse_args()print("=== end ===")

上面debug处的配置,需要讲一下的是 action='store_true' 和 default = False 的作用和区别

store_truedefault=False当我们执行 python mytest.py -v ,就会打印 version 里的内容。

当我们执行 python mytest.py -v ,就会打印 version 里的内容。

[root@localhost ~]# python mytest.py -vmytest.py version : v 0.01[root@localhost ~]#

一旦执行时,指定了参数 -v ,执行到 parser.parse_args() 就会退出程序,不会打印最后的 === end ===

2. 参数种类

参数可分为 必选参数(positional arguments) 和 可选参数(optional arguments)。

在argsparse 里如何实现呢?

必选参数

用单词做参数,默认就为必选参数

# mytest.pyimport argparseparser = argparse.ArgumentParser()parser.add_argument("name")args = parser.parse_args()print(args.name)

不指定name参数运行一下: python mytest.py

[root@localhost ~]# python mytest.py usage: mytest.py [-h] namemytest.py: error: too few arguments[root@localhost ~]#

如预期一样,报错了,说缺少参数。那我们指定一下: python mytest.py name wangbm

[root@localhost ~]# python mytest.py wangbmwangbm[root@localhost ~]#

可选参数

有两种方式:

单下划线 - 来指定的短参数,如 -h ;双下划线 -- 来指定的长参数,如 --help

# mytest.pyimport argparseparser = argparse.ArgumentParser()parser.add_argument("-v

如果觉得《8145v5 参数_Python中最好用的命令行参数解析工具》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。