一个小破网站,居然比 Python 官网还牛逼

前两天,我发现有个前同事写的 Shell 脚本经常在出问题,考虑这个脚本一直挺不稳定的,维护起来也挺头疼,原因是 Shell 脚本写稍微复杂一点的逻辑,代码就变得十分臃肿,对比 Python 真的太差劲了。

这个 Shell 脚本中有一个功能是检查机器上的 rpm 包与中心端的包版本进行对比,在本地用 Shell 取 rpm 信息很方便,但要取 rpm 包版本,其实是很难的。

原因是 rpm 包的版本格式分非常多种,根本无法使用简单的字符串分割来取得具体的版本号,更不用说版本对比。

在重写这个功能的时候,我在找到了能直接获取 Linux 机器 rpm 包的 Python 接口库,这个库要使用 yum 进行安装

yum install -y rpm-python

装上之后,就可以直接导入使用。由于不是通过 pip 安装的,因此 rpm-python 是安装在 /usr/lib64/python2.7/site-packages/ 目录下的。

>>> import rpm
>>> rpm.__path__
['/usr/lib64/python2.7/site-packages/rpm']

1. 问题来了

接口库找到了,也安装上了,可问题是。。。

该怎么用???

你以为百度一下就知道了?

百度出来的,关于这个库的介绍几乎没有。找到的几个也不知所云,完全 get 不到逻辑。

在这里插入图片描述

于是我尝试着去该库的 pypi 和 github 上,希望找到一些 demo 啥的,先入个门。

看来是我想多了,要啥没啥,一片空白。。

在这里插入图片描述
在这里插入图片描述
使用 help 查看呢?更是一头雾水,没提取到有用的信息

在这里插入图片描述

2. 神奇的网站

好在 Google 上还是有点用的,它把一个神奇的网站推送到了我的面前,这个网站,就是今天我要为你介绍的主角。

网站的主界面如下,站如其名啊,就是通过 代码示例 来让你学习各种库的使用。

在这里插入图片描述
整个网站非常的简洁,只有一个搜索框,在这个搜索框里输入你想要学习的 python 库,就会立马为你找到该库的用法示例,并且会查到当前有多少的开源项目在使用它。

在这里插入图片描述
很明显上面的第二个包,才是我们需要的东西,点进去后,你会发现一个全新的世界。

在你面前的是一个又一个的完整的代码示例,这些示例系统、全面,非常适合初次学习阶段的理解。

需要强调的是,这些示例全部摘自开源项目,然后按照每个示例上方的链接转到原始项目或源文件。

若你觉得有些示例的代码写得不错,对你也有帮助的,可以给它点个赞。。
在这里插入图片描述
就以 rpm 库为例,来感受一下。

获取已安装的所有所有 rpm 包
在这里插入图片描述
检查一个库是否已经安装过?
在这里插入图片描述
如何根据关键词搜索指定的包并精准获取其版本
在这里插入图片描述
如何获取离线rpm包的信息
在这里插入图片描述
还有挺多示例的,这里就不一一列举了。

参照着上面给出的真实案例,我也整理出我属于我自己的 rpm 包的用法,比全网 90% 的文章都来得清晰易懂

rpm 包无非就分两种:

  • 未安装的 rpm 包

  • 已安装的 rpm 包

想要获取这两种包,方式是不一样的。

获取未安装的 rpm 包信息

>>> import rpm
>>> ts = rpm.TransactionSet()
>>> rpmhdr = ts.hdrFromFdno("/root/librbd1-devel-10.2.10-0.el7.centos.x86_64.rpm")
>>> rpmhdr["NAME"]
'librbd1-devel'
>>> rpmhdr["VERSION"]
'10.2.10'
>>> rpmhdr["RELEASE"]
'0.el7.centos'
>>> rpmhdr["ARCH"]
'x86_64'

获取已安装的 rpm 包信息

>>> import rpm
>>> ts = rpm.TransactionSet()
>>> query = ts.dbMatch("name", "librbd1")
>>> query.count()
1
>>> pkg_info = next(query)
>>> pkg_info["NAME"]
'librbd1'
>>> pkg_info["VERSION"]
'12.2.9.1.1'
>>> pkg_info["RELEASE"]
'0.el7.centos'
>>> pkg_info["ARCH"]
'x86_64'

但喝水不忘挖井人,以上都是从这个网站中提炼出来的。

本篇文章的主角并不是 rpm 这个库的用法,而是上面这个网站。

与 Python 官方网站提供的标准库示例不一样(赶紧切点题,不然有人说我标题党了),这个网站 ,不仅涵盖了 Python 的内置库,只要你能说得上名的 Python 库(当然你自己测试上传到 pypi 的那种库肯定不能算是吧)应该都在这个网站上找到你对应的代码示例
在这里插入图片描述
全站所收录的 python 库大概有将近 2000 个,对应大多数人的开发应该都能满足了,并且最重要的是,上面的示例全部来源真实的项目,因此更具参考价值。

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

五、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。


这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值