社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

推荐一个Google的Python库,非常适合小白上手

一个普普通通简简单单平平凡凡的神 • 8 年前 • 824 次点击  

题图,来自网络

平时大家在Linux上工作写代码,有的时候需要写一些命令行的解析脚本。一般来说我们都是用argparse库,今天我在Github上逛了一圈,发现一个非常方便的牛逼的库叫'fire',仔细一看是来自Google的开源库,听名字赶紧要火,小试牛刀,发现非常不错!

1.传统的命令行解析,argparse库

通常我们在写命令行解析的时候,都是用的argparse这个库。这是一个标准库,argparse功能非常强大,但是缺点是用起来比较麻烦,参数等等一坨东西。

1).看一些非常简单的计算功能

比如写一个非常简单的加法的计算器小脚本,需要9行代码,而且需要填充一堆的参数。

上面是一个非常非常简单的argparse的用法,但是如果是新手看完是不是非常不好理解。参数太多了,argparse里面有可选产生,定位参数。一般分三步解析:

  • 首先声明一个ArgumentParser对象,这个里面添加程序的功能描述

  • 接着声明一堆解析规则,这里也是最复杂的地方。用add_argments函数,里面有一堆的参数要填。

  • 最后用parse_args()来解析传入的内容。

如果脚本的功能复杂,这个解析的地方会扩展的非常多,而且很长。看着头都晕,有没有简单的,小白很容易上次的命令行解析库呢,有看看Google出名的fire库。

2.Google出品的fire库

这个库有近10000个赞和540次的fork,还是相当不错的!为啥这么牛呢,我们来看看它的用法。

也是上面的例子,实现两个数字的加法。

一共6行代码搞定上面的功能,而且非常的简洁和清爽!是不是非常通俗易懂。用法很简单,如果我们要相关数字相加:

python3 demo_fire.py add 10 20>>30

fire把那些烦人的定位参数,可选参数等等全部封装好了,你只要思考你的逻辑部分,不需要花很大的力气在熟悉argparse的用法上面。节省的大量的精力和时间。如果我们想把上面的脚本扩展,增加减法,乘法和除非的功能!只需要往Calculator类里面添加函数即可。

>>

$ python3 demo_fire.py mul 10 2

20

$ python3 demo_fire.py sub 10 2

8

是不是非常简洁,上面只是这个强大功能的冰山一角,还有很多有趣的功能。比如命令分组的功能,访问属性功能。以后可以抛弃argparse库,来拥抱fire了。其实我仔细看了一些fire源码,这个库底层也是调用argparse库的,只是用了很多封装,让我使用更方便更简洁!

链接:https://github.com/google/python-fire/blob/master/docs/guide.md

下面推荐我的小程序,码题达人

Python圈第一个答题有奖小程序

新上50份奖品,等你来刷题

码题达人

好玩·有趣·奖品多

长按·扫码


今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/NVWlonkUhO
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/20900