一些让你敢到相见恨晚的Python库

下面给大家引荐几个我用过的,而且格外好用的项目,而不是简略的贴一下awesome Python。信任很多人看完awesome Python今后,仅仅简略的收藏一下,并没有很多协助。

1. yagmail

Python官网上发邮件的例子(Examples – Python 2.7.13 documentation),大家感受一下。反正我看到这一堆的import就已经被吓退场了。

一些让你敢到相见恨晚的Python库

如果使用yagmail,发送一个带附件的邮件,只需要2行代码:

一些让你敢到相见恨晚的Python库

2. requests

requests很多人都推荐过了,不过可能一些同学感受不到requests到底好在哪里。我们就以官网的例子为例简单说明,在没有request之前,如果我们要请求https://api.github.com/user,需要像下面这样:

一些让你敢到相见恨晚的Python库

用requests以后,做同样的事情,我们可以这样(注意,前3行代码等于上面一整段代码):

一些让你敢到相见恨晚的Python库

3. psutil

psutil是用来获取操作系统监控以及进程管理的,如果你正在写一个监控系统(或脚本),赶紧去试试。这么说吧,我曾经使用psutil把网易内部的一个监控模块,从1000+行重构到了100+行。

我这里推荐的几个库,可能yagmail对最多人有用。而psutil,对专业的人士最有用。如果你要写一个监控系统,不使用psutil的话,只能直接去/proc目录下读取想用的文件进行计算,或者执行iostat、vmstat、df等Linux命令获取命令输出,不管哪一种方法,都要处理很多繁琐的细节。有了psutil以后,就轻松多了。贴段代码大家感受一下:

一些让你敢到相见恨晚的Python库

此外,使用越来越广泛的监控工具glances(如果没用过,要不现在就是试试?),就是用psutil收集相关数据的。

4. BeautifulSoup

如果你写爬虫,还在用XPath解析HTML,那赶紧用用BeautifulSoup,比XPath好用一百倍;如果你还在用正则表达式从HTML中获取内容,BeautifulSoup能让你好用到哭。(补充:评论里大家都说XPath更好用,难道是我思维方式和大家不一样?)

BeautifulSoup是用来解析HTML的,特点就是好用,有人吐槽BeautifulSoup慢?我不在乎BeautifulSoup比XPath慢多少,我只知道,我的时间比机器的更宝贵。

例如,要找到页面中所有的links,如下所示:

一些让你敢到相见恨晚的Python库

例如,我在编写知乎的爬虫的时候,对于每一个用户的”关注”页面,对于每一个关注对象,有如下的tag:

一些让你敢到相见恨晚的Python库

所以,解析单个关注的用户代码如下所示:

一些让你敢到相见恨晚的Python库

有了BeautifulSoup以后,爬虫操作就变得特别简单了。脏活累活别人都帮忙做好了。

5. utils

除了开源的库以外,还有些开源项目的DataStruct.py helper.py utils.py文件,也值得看一看。里面很多好东西,都是可以直接拿过来用的。

一些让你敢到相见恨晚的Python库

我举几个例子。

  • requests中的CaseInsensitiveDict(https://github.com/kennethreitz/requests/blob/v1.2.3/requests/structures.py#L37-L109),大家看名字就知道什么意思了,我就不多说了。

一些让你敢到相见恨晚的Python库
  • werkzeug中的LocalProxy、ImmutableList、ImmutableDict(https://github.com/pallets/werkzeug/blob/master/werkzeug/datastructures.py#L128),其中ImmutableList和ImmutableDict大家一看就知道是什么意思,这里要说的是LocalProxy,使用LocalProxy,分分钟实现代理模式。
  • web.py的utils.py中各个函数和类都值得看一看(https://github.com/webpy/webpy/blob/master/web/utils.py#L48),不但可以了解好用的函数和数据结构,而且,还能够学习一下高手的Python代码。例如:

一些让你敢到相见恨晚的Python库

ps:web.py的作者是亚伦·斯沃茨(Aaron Swartz),一位年少成名的计算机天才,闻名交际网站Reddit联合创始人。致力于网络信息敞开,却因涉嫌不合法侵入麻省理工学院(MIT)和JSTOR(全称Journal Storage,存储学术期刊的在线体系)被指控,将遭到最高35年拘禁和100万美元罚款。该案正在认罪辩诉期间,而亚伦·斯沃茨却于2013年1月11日在其纽约布鲁克林的寓所内,用一根皮带上吊自杀,尸身随后被女友发现,年仅26岁。

 

马哥学习交流群

马哥教育-Python开发-1群 335068227

马哥教育-Python开发-2群 608459685

 

相关新闻

历经多年发展,已成为国内好评如潮的Linux云计算运维、SRE、Devops、网络安全、云原生、Go、Python开发专业人才培训机构!