专栏名称: OSC开源社区
OSChina 开源中国 官方微信账号
目录
相关文章推荐
码农翻身  ·  近期尽量不要随便网购了! ·  21 小时前  
OSC开源社区  ·  从零开始教你打造一个MCP客户端 ·  3 天前  
OSC开源社区  ·  用智能体管住大模型的“嘴” ·  3 天前  
程序员的那些事  ·  当初给你定级 P8 ... ·  3 天前  
51好读  ›  专栏  ›  OSC开源社区

隐藏的宝藏,13个不可忽视的优秀 Python 库

OSC开源社区  · 公众号  · 程序员  · 2017-02-10 08:36

正文

点击图片,立即加入开源中国码云


作为一门语言,你知道 Python 是如何获得现在的成功的吗? 不妨去看看它大量的库吧,不管是原生的,还是第三方的,可能会有所收获。

有这么多的库,也就不奇怪为什么有的很多人用,有的却没有引起多少人注意。 而且,专注于一个领域的程序员往往并不知道那些看起来是为其他工作类型创建的库能给他们带来什么好处。

这里有 13个你可能已经忽略,但绝对值得你的注意的优秀的 Python 库。 是时候给这些隐藏的宝藏一些关注了。


1

Pillow

简介: 图像“无痛”处理库,易用版的 PIL。

亮点: 大多数执行过图像处理的 Pythonist 应该会熟悉 PIL (Python 图像库),但 PIL 有不少缺点和限制,并且很少更新。Pillow 的目标是比 PIL 更容易使用,并通过最小的变化与 PIL 代码兼容。 扩展包括用于与本机 Windows 的映像功能和 Python Tcl/Tk-backed Tkinter GUI 包。

Pillow 在2017年初发布了 4.0 版本,增加了许多变化,主要是针对内部结构,但同时也更新了 Pillow 使用 的 FreeType 和 OpenJpeg 等最新版本的依赖库。


2

Gooey

简介 : 一条命令,将命令行程序变成一个 GUI 程序。

亮点 :使用命令行程序来呈现用户,尤其是 rank-and-file 用户是减少其使用的最快方法之一。 Gooey 论证了 argparse 命令行解析库期望的参数,并把它们作为 GUI 形式呈现给用户,所有选项都使用适当的控件(例如多选项参数的下拉列表等)进行标记和显示。 假设你已经在使用 argparse,只需要很少的附加编码 - 一个单独的 include 和一个单独的 decorator ,就能使其工作。


3

Peewee

简介 :一个轻量级的 ORM,支持 SQLite、MySQL 和 PostgreSQL,提供多种扩展。

亮点 :ORMs 目前并没有什么很大的声誉,有些人宁愿把图式模型放在数据库端做。 但一个结构良好的 ORM 对于不想去触碰数据库的开发人员来说,是一个十分不错的选择。Peewee 模型易于构建、连接和操作,并且内置了许多常见的查询操作函数(如分页)。还有丰富的功能可作为加载项,包括其他数据库的扩展、测试工具 - 甚至 ORM haters 可能会很爱的一个功能 - 模式迁移系统。


4

Scrapy

简介 :一个快速、高级的屏幕抓取及 web 爬虫框架。

亮点 :Scrapy 保持整个爬取过程简单。 创建一个类,并定义你要删除的项目的类型,并编写一些关于如何从页面中提取数据的规则。结果将以 JSON、XML、CSV 或许多其他的格式导出。收集的数据可以保存为 raw,也可以在导入时进行清理。 此外,Scrapy 可以扩展允许许多其他行为,例如网站登录处理、会话 cookie 处理。 图像也可以被 Scrapy 自动提取并与被抓取的内容相关联。


5

Apache Libcloud

简介 :一个为各种云设计的 Python 库,通过单一、一致和统一的 API 访问各个云提供商。

亮点 :如果上面关于 Apache Libcloud 的描述没有让你有摩拳擦掌想去体验的冲动,没关系。 云提供商都喜欢以他们自己的方式做事情 - 有时巧妙,有时不是 - 所以有一个统一的机制来处理几十个提供商和相关的方法来操纵他们的资源是一个福音。 API 可用于计算、存储、负载平衡和 DNS,支持 2.x 和 3.x 的 Python 风格。 对于那些为了额外的性能使用 Python 的 PyPy 版本的,也能被很好地支持。


6

Pygame

简介 :一个高可移植性的游戏开发模块。

亮点 :如果你认为除了身处游戏开发世界的,其他人不会想要这样的框架,那还请再重新思考一下。 Pygame 提供了一个方便的选项来处理许多面向 GUI 的行为:绘制画布和 sprite 图形、处理多声道声音、处理窗口和点击事件、 碰撞检测等等。 不是每个应用,或者可以说不是每个 GUI 应用,在使用 Pygame 构建时都能受益,但仔细看看它提供了什么,你可能会感到惊讶。


7

NumPy

简介 :科学计算和数学工作基础包,包括统计学、线性代数、矩阵数学、金融操作等等。

亮点 :Quant 和 bean 计数器已经了解 NumPy 并且喜欢它,但 NumPy 的数学 'n' 统计的应用范围比你想象的更广。 例如,它是向多维数组添加对 Python 支持的最简单、最灵活的方法之一。 NumPy 提供了许多高级的数值编程工具,如:矩阵数据类型、矢量处理,以及精密的运算库,专为进行严格的数字处理而产生,和稀疏矩阵运算包 Scipy 配合使用更加方便。


8

Sh

简介 :一个完备的 subprocess 替代库,能调用 subprocess 中的任意外部程序,并将结果返回到 Python 应用。

亮点 :在任何兼容 Posix 的系统上,Sh 都是一个神器。 这意味着在这些平台上可用的所有命令行程序都可以使用 Python。 你不仅不再需要重新造轮子,还不用再为如何优雅地添加该功能到你的应用上而努力。 值得注意的是:该库对于通过此库传递的参数没有清理界限,请确保不要将原始用户输入传递。


9

Python-docx

简介 :以编程方式创建和操纵 Microsoft Word .docx 文件。

亮点 :理论上,编写用于创建和操纵 XML-style Microsoft Word 文档的脚本应该很容易。 但在实践中,由于 .docx 格式的内部复杂性,其实还真没那么简单。 Python-docx 允许通过提供一种高级的、编程的方式来创建 .docx 文件,从而完成所有的相关操作。







请到「今天看啥」查看全文