多个库,多条路,Python 到底有多少命令行参数解析库?
橡皮擦,一个逗趣的互联网高级网虫。
本篇博客将为你带来 10 个 Python 中的参数解析库,Python 自带的这些【模块军火库】,一定要了解,毕竟多掌握一个库,你解决问题的时候就多了一条路。
文章目录
何为参数解析库
sys.argv
getopt 内置的参数解析库
docopt 参数解析库
optparse 参数解析库
argparse 参数解析库
click 参数解析库
fire 参数解析库
typer 参数解析库
Commando 参数解析库
FLAGS 参数解析库
写在后面
何为参数解析库
在对 Python 一段小脚本运行的时候,通过 python test.py 参数1 参数2 参数3
形式,可以向 Python 脚本内部传递参数,用于解析参数的库就是参数解析库。
sys.argv
最传统的写法,也是 Python 内置的内容,例如下述代码:
import sysprint(sys.argv)
当你通过下述命令运行 Python 脚本时,就可以获取到一个 list
类型的参数列表。
python test.py 1 2 3
getopt 内置的参数解析库
对于 sys.argv
而言,得到的只是一个列表,通过 getopt
参数解析库,可以获取参数。
getopt
库中核心的函数是 getopt.getopt()
,具体参数与使用方式,可以参见滚雪球系列这篇文章。
docopt 参数解析库
一个优雅的命令行模块,可以通过 https://github.com/docopt/docopt 进行学习与使用。
optparse 参数解析库
optparse 解析器的命令行选项,3.2 版后 optparse 模块已被弃用并不再继续开发;接力棒,转移到了 argparse 模块。
学习如何使用,可以参考:https://docs.python.org/zh-cn/3/library/optparse.html#module-optparse
argparse 参数解析库
通过 pip install argparse
对该库进行安装,使用方式也比较简单,官方对其的定义是,命令行选项、参数和子命令解析器。
学习如何使用,可以参考:https://docs.python.org/zh-cn/3/library/argparse.html
click 参数解析库
Click 是 Flask 的开发团队 Pallets 的一款开源项目,它是用于快速创建命令行的第三方模块。
官方地址与使用方式,参考 github:https://github.com/pallets/click
fire 参数解析库
fire 用于从任何 Python 对象自动生成命令行接口,只需对 Fire 进行一次调用,即可将任何 Python 组件转变为命令行界面。
该工具库是谷歌开源的。
开源地址:https://github.com/google/python-fire
typer 参数解析库
Typer 是一个用于构建 CLI 应用程序的库。
文档: https://typer.tiangolo.com
代码: https://github.com/tiangolo/typer
Commando 参数解析库
基于 argparse
的封装,允许使用装饰器的方式定义命令和参数。
开源地址:https://github.com/hyde/commando
FLAGS 参数解析库
如果你在做深度学习相关方向,尤其经常使用 tensorflow,那 FLAGS 是一款必备的命令行工具。
该模块的使用需要基于 tensorflow 了,故放在最后一趴。
写在后面
这些优质的第三方库,橡皮擦给大家的推荐顺序是:fire-> click -> argparse -> **getopt **。
这两个项目在 github 上的超高 star,也证明了大家对其的认可。
本篇博客并未对所有的库进行展开说明,毕竟掌握一个库,已经是基于该库可以解决你的问题。