0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

这些非常好用的的Python库你知道多少

马哥Linux运维 来源:未知 2018-12-31 14:41 次阅读

下面给大家推荐几个我用过的,并且特别好用的项目,而不是简单的贴一下awesome python。相信很多人看完awesome python以后,只是简单的收藏一下,并没有很多帮助。

1. yagmail

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

o4YBAFwl8FKAYp8EAAB8jZb4I4Q632.png

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

o4YBAFwl8FOAUpEjAABYTAJ8hJ0148.png

2. requests

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

o4YBAFwl8FOAMIyNAACV4acFWyY500.png

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

o4YBAFwl8FOARC3rAABOgsOslJs113.png

3. psutil

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

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

o4YBAFwl8FSANAQeAAA6-uLFjhI866.png

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

4. BeautifulSoup

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

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

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

o4YBAFwl8FSAPwk2AAAfSSgEv7A174.png

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

o4YBAFwl8FSAab1pAABM1P0Obko389.png

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

o4YBAFwl8FWAKF4MAACPz0NeLDw859.png

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

5. utils

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

<img src="https://pic4.zhimg.com/v2-0f15c1bee04b1ae03bbc0ef1eb13d10f_b.jpg" data-rawwidth="652" data-rawheight="600" class="origin_image zh-lightbox-thumb" width="652" data-original="https://pic4.zhimg.com/v2-0f15c1bee04b1ae03bbc0ef1eb13d10f_r.jpg">

我举几个例子。

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

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代码。例如:

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 操作系统
    +关注

    关注

    37

    文章

    6266

    浏览量

    121842
  • 代码
    +关注

    关注

    30

    文章

    4553

    浏览量

    66664
  • python
    +关注

    关注

    51

    文章

    4667

    浏览量

    83441

原文标题:一些让你相见恨晚的Python库(一)

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Python编程学习笔记(1)

    这里推荐VSCode。安装完python的插件后,非常好用
    发表于 09-20 16:15 173次阅读
    <b class='flag-5'>Python</b>编程学习笔记(1)

    [推荐]非常好用硬盘温度测试工具

      为大家推荐一款非常好用的硬盘温度测试工具 :     
    发表于 05-29 14:26

    一键设置/解除所有Vi密码,非常好用

    一键设置/解除所有Vi密码,非常好用
    发表于 09-08 21:09

    python数据分析的类

    Python,它和下面我们要讲的IPython结合的很爽,绝对是好基友,提供了一种非常好用的交互式的数据绘图环境。4.IPythonIPython是Python科学计算标准工具集的
    发表于 05-10 15:18

    TCP IP通信labview程序,非常好用的资料

    TCP IP通信labview程序,非常好用
    发表于 04-03 18:17

    1.2 Python 开发环境的搭建

    Python 代码分析、远程开发调试、数据支持。社区版的功能有限,有些非常好用的功能只有专业版才有,比如 远程调试。如果你想使用到专业版,那有什么办法呢?有钱的就是大爷,付费购买。穷人自有穷活法
    发表于 02-16 18:29

    非常好用的stm32学习资料

    非常好用的stm32学习资料,与大家分享
    发表于 09-27 08:27

    非常好用的SmartPrinter虚拟打印机免费下载

    非常好用的SmartPrinter虚拟打印机免费下载
    发表于 07-07 22:04 20次下载

    非常好用的KeilC51最新版

    电子发烧友网站提供《非常好用的KeilC51最新版.txt》资料免费下载
    发表于 07-11 14:21 0次下载

    51单片机教程 非常好用

    51单片机教程 非常好用
    发表于 10-13 09:16 61次下载

    TCMD750A应用程序非常好的软件比资源管理器好用得多

    本文档的主要内容详细介绍的是TCMD750A应用程序非常好的软件比资源管理器好用得多。
    发表于 02-12 08:00 6次下载

    lvButton一个非常好用的按钮按件工程文件免费下载

    本文档的主要内容详细介绍的是lvButton一个非常好用的按钮按件工程文件和程序免费下载VB常用控件学习。
    发表于 10-16 17:18 2次下载

    一个非常好用的AD封装库免费下载

    本文档的主要内容详细介绍的是一个非常好用的AD封装库免费下载。
    发表于 04-07 08:00 0次下载
    一个<b class='flag-5'>非常好用</b>的AD封装库免费下载

    单片机软件开发神器,非常好用的文件比较工具

    单片机软件开发神器,非常好用的文件比较工具
    发表于 11-13 12:51 0次下载
    单片机软件开发神器,<b class='flag-5'>非常好用</b>的文件比较工具

    Akshare:一个非常好用的开源A股数据获取模块

    Akshare是一个非常好用的开源A股数据获取模块,它是基于 Python 的财经数据接口库,目的是实现对A股、美股、期货等金融产品的基本面数据、实时和历史行情数据、衍生数据从数据采集、数据清洗
    的头像 发表于 10-21 10:58 3841次阅读
    Akshare:一个<b class='flag-5'>非常好用</b>的开源A股数据获取模块