每个Python开发人员都有24个Python库

想要为Python编程语言取得巨大成功的充分理由吗? 除了大量可用于Python的库(本机库和第三方库)外,别无所求。 但是,由于存在许多Python库,因此有些库没有得到应有的关注也就不足为奇了。 另外,仅在一个领域中工作的程序员并不总是知道他们可以用于其他类型的工作。

这里是您可能忽略了的24个Python库,但是绝对值得您注意。 这些瑰宝发挥着广泛的作用,简化了从文件系统访问,数据库编程,使用云服务到构建轻量级Web应用程序,创建GUI以及使用图像,电子书和Word文件的所有工作,此外还进行了许多其他工作。 有些是众所周知的,有些则鲜为人知,但是所有这些Python库都应该在工具箱中放置一席之地。

[那么, 到底GitHub是什么? •GitHub教程: GitHub入门 Git和GitHub的20个基本指针 GitHub的Atom文本编辑器中的新增功能 | 通过InfoWorld的App Dev Report新闻通讯了解编程方面的热门话题。 ]

Apache Libcloud

Libcloud的作用:通过单个一致的统一API访问多个云提供商。

为什么要使用Libcloud:如果上面对Apache Libcloud的描述不能使您为开心而拍手,那么您就没有尝试过使用多个云。 所有云提供商都喜欢按自己的方式做事,从而建立了一个统一的机制来与数十个提供商打交道,这既节省了时间又使人头疼。 API可用于计算,存储,负载平衡和DNS,并支持Python 2.x和Python 3.x以及PyPy(用于提高Python性能的JIT编译器)。

箭头

Arrow的作用:在Python中更清晰地处理日期和时间。

为何使用Arrow:处理时区,日期转换,日期格式以及所有其他内容已经令人头疼了一半。 投入Python的标准库中进行日期/时间工作,您会遇到两个半麻烦。

艾睿电子提供四大优势。 首先,Arrow是Python的datetime模块的直接替代,这意味着.now().utcnow()类的常用函数调用可以正常工作。 第二,Arrow提供了满足常见需求的方法,例如移动和转换时区。 第三,Arrow提供了“人性化”的日期/时间信息-例如能够说出“一个小时前”发生的事情或将在“两个小时内”发生的事情而无需付出太多努力。 第四,Arrow可以毫不费力地定位日期/时间信息。

看哪

看得出的功能:对Python中的打印样式调试的强大支持。

为什么使用观察:为什么有一种简单的方法可以在Python或几乎所有的编程语言中进行调试:插入行内print语句。 但是,尽管在小型程序中无需进行打印调试,但要在庞大,庞大的多模块项目中获得有用的结果并不容易。

Behold提供了一个通过print语句进行上下文调试的工具包。 它使您可以对输出施加统一的外观,对结果进行标记,以便可以通过搜索或过滤器对结果进行排序,还可以在模块之间提供上下文,以便可以正确调试源自一个模块的功能。 Behold处理许多常见的特定于Python的场景,例如打印对象的内部字典,公开嵌套的属性以及存储和重用结果,以便在调试过程中与其他点进行比较。

黑色

Black的作用:根据一组严格且几乎完全不变的规则来格式化Python代码。

为什么要使用Black: YAPF之类的Python代码格式化程序通常具有许多可配置的选项- 行长 ,行拆分选项,尾随逗号的处理等等。 黑色对不能更改的规则应用了一组一致的默认值。 生成的格式化代码在各个代码库之间以及用户之间尽可能一致,并且已编辑文件之间的差异最小。

Black习惯了一些习惯,特别是如果您对垂直空格,带有深层嵌套的语句(例如,列表中的列表)以及其他格式选项有些敏感的话。 但是从长远来看,它使您不必考虑格式,而使您可以专注于代码。

瓶子

Bottle的功能:轻巧快速的 Web应用程序。

为什么要使用Bottle:当您想将快速的RESTful API组合在一起或使用Web框架的基本知识来构建应用程序时,功能强大而又小巧的Bottle将为您提供所需的一切。 路由,模板,对请求和响应数据的访问,从普通的旧CGI到现在对多种服务器类型的支持以及对WebSockets等更高级功能的支持—都在这里。 同样,入门所需的工作量也最少,并且在需要更高级的功能时,Bottle的设计可以优雅地扩展。  

请点击

Click的作用:可让您快速构建Python应用程序的命令行界面。

为何使用Click: GUI十分方便,但CLI才是真正的力量所在。 但是,构建健壮的CLI并非易事,并且Python中用于收集和使用命令行选项的默认工具集是原始的。

Click将这些零碎的内容包装在一个高级CLI构造API中。 如果只想创建一些基本命令,则可以用几行代码来完成。 如果您想要更高级的行为,例如分别提示有关参数的更多信息,或从环境变量中获取值,请单击“单击”。 Click还通过colorama库支持终端颜色,并且可以使用第三方插件进行扩展。

电子书库

EbookLib的作用:读写.epub文件。

为什么要使用EbookLib:创建电子书通常需要使用一种命令行工具或另一种。 EbookLib提供了简化该过程的管理工具和API。 它可以处理EPUB 2和EPUB 3文件,并正在开发Kindle支持。

提供图像和文本(后者为HTML格式),EbookLib可以将这些片段组装成一本完整的电子书,其中包括章节,嵌套目录,图像,HTML标记等。 封面,书脊和样式表数据也都受支持。 插件系统允许第三方扩展库的行为。

如果您不需要EbookLib提供的所有内容,请尝试Mkepub 。 Mkepub在一个只有几千字节大小的库中提供了基本的电子书组装功能。 Mkepub的一个小缺点是它需要Jinja2,而后者又需要MarkupSafe库。

古埃

Gooey的作用:   为基于控制台的Python程序提供平台原生的GUI。

为什么要使用Gooey:   阻止用户使用应用程序的最佳方法之一是使用命令行界面向用户(尤其是排名和文件用户)显示。 除了了解极点的极客之外,很少有人想出要传递的选项和顺序。 Gooey接受argparse库期望的参数,并通过WxPython库以GUI形式将其呈现给用户。 所有选项都被标记并显示有适当的控件(例如,多选项参数的下拉列表)。 假设您已经在使用argparse,只需很少的额外编码(单个include和单个decorator)即可使其工作。

调用

Invoke的作用: Pythonic远程执行–即使用Python库执行管理任务。

为什么要使用Invoke:使用Python代替常见的shell脚本任务很有道理。 Invoke提供了一个高级API,用于运行shell命令和管理命令行任务,就好像它们是Python函数一样,允许您将这些任务嵌入自己的代码中或围绕它们优雅地构建。 请注意不要将不受信任的输入原样传递给任何Shell命令。

努伊特卡

Nuitka的作用:将 Python编译成独立的C可执行文件。

为什么要使用Nuitka:Cython一样, Nuitka可以将Python编译为C。但是,Cython需要使用自己的自定义语法来获得最佳结果,并且主要侧重于数学和统计应用程序,而Nuitka可以直接使用任何Python程序,将其编译为C,并生成一个单文件可执行文件,并在此过程中尽可能进行优化。 Nuitka仍处于早期阶段,许多计划中的优化仍将继续。 不过,这是将Python脚本转换为快速命令行应用程序的便捷方法。

Numba

Numba的作用:有选择地加速数学密集型函数。

为什么要使用Numba: Python世界包含用于加速数学运算的整套软件包的亚文化。 例如,NumPy通过将高速C库包装在Python接口中来工作,而Cython使用可选的类型将Python编译为C以提高性能。 但是Numba无疑是最方便的,因为它允许使用装饰器选择性地加速Python函数。 为了进一步提高速度,您可以使用常见的Python惯用法来并行化工作负载,或者使用SIMD或GPU指令。

请注意,您可以将NumPy与Numba一起使用。 毕竟,NumPy有许多现成的算法,不需要从头开始实现。 但是对于小型“内核”算法,Numba在许多情况下会比NumPy胜许多倍。

Openpyxl

Openpyxl的作用:读取,写入和操作Excel文件。

为什么使用OpenPyxl:要求某人命名数字处理器在工作中使用的三种工具,很可能会得到Python,R和Excel,不一定按此顺序。 Excel还没有原生Python连接,但是第三方程序包以各种方式弥合了这种鸿沟。

Openpyxl通过修改Excel 文件而不是直接操纵Excel来工作。 使用Openpyxl,您可以自动创建电子表格和工作簿,生成公式,使用这些公式填充单元格以及执行许多其他操作。 您还可以更改Excel对象的属性,例如单元格样式和条件格式。 任何花费大量时间盯着电子表格的人都会在这里找到有用的东西。

皮维

Peewee的作用:   一个微小的ORM(对象关系映射器),它支持SQLite,MySQL和PostgreSQL,并具有许多扩展。

为什么要使用Peewee:   不是每个人都喜欢ORM。 有些人宁愿将模式建模留在数据库方面,并用它来完成。 但是对于不想接触数据库的开发人员而言,结构良好,通俗易懂的ORM可能是天赐之物。 对于不希望ORM像SQL Alchemy那样成熟的开发人员, Peewee非常适合。

Peewee模型易于构建,连接和操纵。 此外,还内置了许多常见的查询操作功能(例如分页)。 附加功能有更多可用,包括其他数据库的扩展,测试工具和模式迁移系统,甚至是讨厌ORM的人也可以学习的功能。爱。 请注意,Peewee 3.x分支(推荐版本)与Peewee的早期版本不完全向后兼容。

枕头

枕头的作用:   图像处理无痛苦。

为什么要使用枕头:   大多数执行过图像处理的Python开发人员都应该熟悉PIL(Python图像库),但是PIL充满缺陷和局限性,并且不经常更新。 Pillow旨在通过最小的更改使其更易于使用并且与PIL代码兼容。 包含的扩展程序可以与本机Windows映像功能和Python的Tcl / Tk支持的Tkinter GUI软件包进行通信。 可以通过GitHubPyPI存储库获得Pillow。

诗歌

诗歌的作用:以高级方式管理Python项目的依赖关系和打包。

为什么要使用诗歌:从理论上讲,您无需执行任何操作即可启动新的Python项目,只需创建一个空目录并用.py文件填充即可。 在实践中,特别是对于一个雄心勃勃的项目,您将需要做更多的工作-创建自述文件,设置一些文件夹结构,声明依赖项等等。 用手做所有这些都是令人头疼的。

诗歌可以自动完成许多此类设置和维护。 运行poetry new以创建一个新的项目目录和虚拟环境,并预先填充了基本的组件。 使用Python自己的pyprojec.toml文件格式声明依赖项,Poetry会为您管理它们。 现有诗歌管理产品可以通过诗歌的命令行自动安装,刷新和修改其依赖项。 诗歌还负责发布到远程存储库(例如PyPI)。

Py文件系统

PyFilesystem的作用:与任何文件系统— 任何文件系统的Pythonic接口。

为什么要使用PyFilesystem:背后的基本思想PyFilesystem简单得不能再简单:就像Python的file对象抽象的单个文件,PyFilesystem的FS对象抽象的整个文件系统。 这也不仅仅意味着磁盘文件系统。 PyFilesystem还支持FTP目录,内存文件系统,由OS定义的位置的文件系统(例如用户目录),甚至上述内容的相互叠加。

除了使编写跨平台代码来处理文件更容易之外,PyFilesystem还消除了将标准库的不同部分(主要是osio脚本拼凑在一起的需要。 它还提供了一些可能需要从头开始创建的实用程序,例如用于打印文件系统的控制台友好树形视图的工具。

Pygame

Pygame的作用:   使用Python创建视频游戏或游戏质量的前端。

From: https://www.infoworld.com/article/3008915/24-python-libraries-for-every-python-developer.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值