15个顶级Python库,你必需要试试!

↑↑↑关注后"星标"简说Python人人均可以简单入门Python、爬虫、数据分析 简说Python推荐 
来源 https://medium.com/tech-explained/top-15-python-packages-you-must-try-c6a877ed3cd0做者:Erik van Baaren 译者:数据黑客

为何我喜欢Python?对于初学者来讲,这是一种简单易学的编程语言,另外一个缘由:大量开箱即用的第三方库,正是23万个由用户提供的软件包使得Python真正强大和流行。
php

在本文中,我挑选了15个最有用的软件包,介绍它们的功能和特色。html

1. Dash

Dash是比较新的软件包,它是用纯Python构建数据可视化app的理想选择,所以特别适合处理数据的任何人。Dash是Flask,Plotly.js和React.js的混合体。html5

2. Pygame

Pygame是SDL多媒体库的Python装饰器,SDL(Simple DirectMedia Layer)是一个跨平台开发库,旨在提供对如下内容的低级接口:python

  • 音频程序员

  • 键盘算法

  • 鼠标shell

  • 游戏杆数据库

  • 基于OpenGL和Direct3D的图形硬件编程

Pygame具备高度的可移植性,几乎能够在全部平台和操做系统上运行。尽管它具备完善的游戏引擎,但您也可使用此库直接从Python脚本播放MP3文件。json

3. Pillow

Pillow专门用于处理图像,您可使用该库建立缩略图,在文件格式之间转换,旋转,应用滤镜,显示图像等等。若是您须要对许多图像执行批量操做,这是理想的选择。

为了快速了解它,看如下代码示例(加载并渲染图片):

4. Colorama

Colorama容许你在终端使用颜色,很是适合Python脚本,文档简短而有趣,能够在Colorama PyPI页面上找到。

5. JmesPath

在Python中使用JSON很是容易,由于JSON在Python字典上的映射很是好。此外,Python带有本身出色的json库,用于解析和建立JSON。对我来讲,这是它最好的功能之一。若是我须要使用JSON,能够考虑使用Python。

JMESPath使Python处理JSON更加容易,它容许您明确的地指定如何从JSON文档中提取元素。如下是一些基本示例,可以让您对它的功能有所了解:

6. Requests

Requests创建在世界上下载量最大的Python库urllib3上,它令Web请求变得很是简单,功能强大且用途普遍。

如下代码示例说明requests的使用是多么简单。

Requests能够完成您能想到的全部高级工做,例如:

  • 认证

  • 使用cookie

  • 执行POST,PUT,DELETE等

  • 使用自定义证书

  • 使用会话Session

  • 使用代理

7. Simplejson

Python中的本地json模块有什么问题?没有!实际上,Python的json是simplejson。意思是,Python采用了simplejson的一个版本,并将其合并到每一个发行版中。可是使用simplejson具备一些优势:

  • 它适用于更多Python版本。

  • 它比Python随附的版本更新频率更高。

  • 它具备用C编写的(可选)部分,所以很是快速。

因为这些事实,您常常会在使用JSON的脚本中看到如下内容:

我将只使用默认的json,除非您特别须要:

  • 速度

  • 标准库中没有的东西

Simplejson比json快不少,由于它用C实现一些关键部分。除非您正在处理数百万个JSON文件,不然您不会对这种速度感兴趣。

8. Emoji

Emoji库很是有意思,但并不是每一个人都喜欢表情包,分析视角媒体数据时,Emoji包很是有用。

如下是简单的代码示例:

9. Chardet

您可使用chardet模块来检测文件或数据流的字符集。例如,这在分析大量随机文本时颇有用。可是,当您不知道字符集是什么时,也能够在处理远程下载的数据时使用它。

10. Python-dateutil

python-dateutil模块提供了对标准datetime模块的强大扩展。个人经验是,常规的Python日期时间功能在哪里结束,而python-dateutil就出现了。

您可使用此库作不少很棒的事情。我将这些示例限制为我发现特别有用的示例:模糊分析日志文件中的日期,例如:

有关更多功能,请参见完整文档,例如:

  • 计算相对增量(下个月,明年,下周一,该月的最后一周等)和两个给定日期对象之间的相对增量。

  • 使用iCalendar规范的超集,根据重复规则计算日期。

  • tzfile文件(/ etc / localtime,/ usr / share / zoneinfo等)的时区(tzinfo)实现,TZ环境字符串(全部已知格式),iCalendar格式文件,给定范围(在相对增量的帮助下),本地计算机 时区,固定偏移时区,UTC时区和基于Windows注册表的时区。

  • 基于奥尔森数据库的内部最新世界时区信息。

  • 使用Western,Orthodox或Julian算法计算任意一年的复活节周日日期。

11. 进度条:progress和tqdm

这里有点做弊,由于这是两个包,但忽略其中之一是不公平的。

您能够建立本身的进度条,这也许颇有趣,可是使用progress或tqdm程序包更快,更不容易出错。

progress

借助这个软件包,您能够轻松建立进度条:

img

tqdm

tqdm的功能大体相同,但彷佛是最新的。首先以gif动画形式进行一些演示:

12. IPython

我肯定您知道Python的交互式外壳,这是运行Python的好方法。可是您也知道IPython shell吗?若是您常用交互式外壳程序,但您不了解IPython,则应该检查一下!

加强的IPython shell提供的一些功能包括:

  • 全面的对象自省。

  • 输入历史记录,跨会话持续存在。

  • 在具备自动生成的引用的会话期间缓存输出结果。

  • 制表符补全,默认状况下支持python变量和关键字,文件名和函数关键字的补全。

  • “魔术”命令,用于控制环境并执行许多与IPython或操做系统相关的任务。

  • 会话记录和从新加载。

  • 对pdb调试器和Python分析器的集成访问。

  • IPython的一个不为人知的功能:它的体系结构还容许并行和分布式计算。

IPython是Jupyter Notebook的核心,它是一个开放源代码Web应用程序,可以让您建立和共享包含实时代码,方程式,可视化效果和叙述文本的文档。

13. Homeassistant

我喜欢家庭自动化。这对我来讲是一种嗜好,但我至今仍对此深表歉意,由于它如今控制着咱们房屋的大部分。我使用Home Assistant将房子中的全部系统捆绑在一块儿。尽管它确实是一个完整的应用程序,可是您也能够将其安装为Python PyPI软件包。

  • 咱们的大多数灯具都是自动化的,百叶窗也是如此。

  • 我监视咱们的自然气用量,电力用量和产量(太阳能电池板)。

  • 我能够跟踪大多数电话的位置,并在进入一个区域时开始操做,例如当我回家时打开车库灯。

  • 它还能够控制咱们全部的娱乐系统,例如三星电视和Sonos扬声器。

  • 它可以自动发现网络上的大多数设备,所以上手起来很是容易。

我已经天天使用Home Assistant已有3年了,它仍处于测试阶段,但这是我尝试过的全部平台中最好的平台。它可以集成和控制各类设备和协议,而且都是免费和开源的。

若是您有兴趣将房屋自动化,请确保有机会!若是您想了解更多,请访问他们的官方网站。若是能够,请将其安装在Raspberry Pi上。到目前为止,这是最简单,最安全的入门方法。我将其安装在Docker容器内功能更强大的服务器上。

14. Flask

Flask是个人入门库,用于建立快速的Web服务或简单的网站。这是一个微框架,这意味着Flask旨在使核心保持简单但可扩展。有700多个官方和社区扩展。

若是您知道本身将开发一个大型的Web应用程序,则可能须要研究一个更完整的框架。该类别中最受欢迎的是Django。

15. BeautifulSoup

若是您从网站上提取了一些HTML,则须要对其进行解析以获取实际所需的内容。Beautiful Soup是一个Python库,用于从HTML和XML文件中提取数据。它提供了导航,搜索和修改解析树的简单方法。它很是强大,即便损坏了,也可以处理各类HTML。相信我,HTML常常被破坏,因此这是一个很是强大的功能。

它的一些主要功能:

  • Beautiful Soup会自动将传入文档转换为Unicode,将传出文档转换为UTF-8。您无需考虑编码。

  • Beautiful Soup位于流行的Python解析器(如lxml和html5lib)的顶部,使您能够尝试不一样的解析策略或提升灵活性。

  • BeautifulSoup会解析您提供的任何内容,并为您作遍历树的工做。您能够将其告诉“查找全部连接”,或“查找带有粗体的表格标题,而后给我该文字。”

扫码回复:2021
获取最新学习资源

推荐你们关注两个公号

分享程序员生活、互联网资讯、理财复盘日记等

专一于Java学习分享,从零和你一块儿学Java

关注后回复【1024】

送上独家资料

◆◆◆

欢迎你们围观朋友圈,个人微信:pythonbrief

学习更多:
整理了我开始分享学习笔记到如今超过250篇优质文章,涵盖数据分析、爬虫、机器学习等方面,别再说不知道该从哪开始,实战哪里找了

点赞”传统美德不能丢