当前位置: 首页 > 科技观察

这15个你必须尝试的Python库

时间:2023-03-22 17:15:22 科技观察

为什么我喜欢Python?对于初学者来说,它是一种易于学习的编程语言,还有一个原因:大量开箱即用的第三方库,正是230,000个用户贡献的包让Python真正强大和流行。在本文中,我挑选了15个最有用的软件包并介绍了它们的功能和特性。1.DashDash是一个相对较新的包,非常适合用纯Python构建数据可视化应用程序,因此特别适合任何与数据打交道的人。Dash是Fl??ask、Plotly.js和React.js的混合体。2.PygamePygame是SDL多媒体库的Python装饰器。SDL(SimpleDirectMediaLayer)是一个跨平台开发库,旨在为以下各项提供低级接口:音频键盘鼠标操纵杆图形硬件基于OpenGL和Direct3DPygame具有很高的可移植性,使其可以在几乎所有平台上运行和操作系统。虽然它有一个成熟的游戏引擎,但您也可以使用这个库直接从Python脚本播放MP3文件。3.PillowPillow专为处理图像而设计,您可以使用此库创建缩略图、在文件格式之间转换、旋转、应用滤镜、显示图像等。如果您需要对许多图像执行批量操作,这是理想的选择。要快速理解它,请看下面的代码示例(加载和渲染图像):4.ColoramaColorama允许您在终端中使用颜色,非常适合Python脚本,文档简短有趣,可以在ColoramaPyPI上找到页。5.JmesPath在Python中使用JSON非常好用,因为JSON在Python字典上的映射非常好。此外,Python自带了自己优秀的json库,用于解析和创建JSON。对我来说,这是它最好的功能之一。如果我需要使用JSON,我可能会考虑使用Python。JMESPath允许您明确指定如何从JSON文档中提取元素,从而使Python更容易处理JSON。下面是一些基本示例,让您了解它的作用:6.RequestsRequests建立在世界上下载次数最多的Python库urllib3之上,它使Web请求变得难以置信的简单、强大和通用。以下代码示例显示了使用请求的简单程度。Requests可以做所有你能想到的高级事情,例如:使用cookies进行身份验证执行POST、PUT、DELETE等使用自定义凭据使用会话Session使用代理7.SimplejsonPython中的原生json模块有什么问题?不!其实,Python的json就是simplejson。这意味着,Python采用了一个simplejson版本并将其合并到每个版本中。但是使用simplejson有一些优点:它适用于更多的Python版本。它比Python自带的版本更新更频繁。它有一个用C编写的(可选)部分,因此速度非常快。由于这些事实,您会经常在使用JSON的脚本中看到以下内容:除非您特别需要,否则我将只使用默认的json:速度标准库中没有的东西Simplejson比Simplejson快很多json因为它在C重要部分实现了一些东西。除非您正在处理数百万个JSON文件,否则您不会对这种速度感兴趣。8.EmojiEmoji表情库很有趣,但并不是每个人都喜欢表情符号。在分析透视媒体数据时,Emoji包非常有用。以下是一个简单的代码示例:9.Chardet您可以使用chardet模块来检测文件或数据流的字符集。这很有用,例如,在分析大量随机文本时。但当您不知道字符集是什么时,也可以在处理远程下载的数据时使用它。10.Python-dateutilpython-dateutil模块为标准的datetime模块提供了强大的扩展。我的经验是,在常规Python日期时间功能结束的地方,python-dateutil开始使用。你可以用这个库做很多很酷的事情。我将示例限制为我发现特别有用的示例:模糊测试日志文件中的日期,例如:查看完整文档了解更多功能,例如:计算相对增量(下个月、明年、下周一、最后一周)月等)和两个给定日期对象之间的相对增量。使用iCalendar规范的超集,根据重复规则计算日期。tz文件(/etc/localtime、/usr/share/zoneinfo等)的时区(tzinfo)实现、TZ环境字符串(所有已知格式)、iCalendar格式文件、给定范围(借助相对增量)、本地计算机时区、固定偏移时区、UTC时区和基于Windows注册表的时区。基于Olsen数据库的内部最新世界时区信息。使用西方、正统或儒略算法计算任何一年的复活节星期日日期。11.进度条:progress和tq??dm在这里有点作弊,因为这是两个包,但忽略其中一个是不公平的。您可以创建自己的进度条,这可能很有趣,但使用progress或tqdm包会更快并且更不容易出错。progress借助这个包,您可以轻松地创建进度条:imgtqdmtqdm做的事情大致相同,但似乎是最新的。首先是一个动画gif形式的小演示:12.IPython我相信你知道Python的交互式shell,它是运行Python的好方法。但是你也知道IPythonshell吗?如果你经常使用交互式shell,但你不知道IPython,你应该检查一下!增强的IPythonshell提供的一些特性包括:全面的对象内省。输入历史记录,跨会话持续存在。在会话期间使用自动生成的引用缓存输出结果。Tab补全,默认支持python变量和关键字、文件名和函数关键字的补全。用于控制环境和执行与IPython或操作系统相关的许多任务的“魔术”命令。会话记录和重新加载。集成访问pdb调试器和Python分析器。IPython的一个鲜为人知的特性:它的架构还允许并行和分布式计算。IPython是JupyterNotebook的核心,JupyterNotebook是一个开源Web应用程序,可让您创建和共享包含实时代码、方程式、可视化效果和叙述文本的文档。13.Homeassistant我喜欢家庭自动化。这对我来说是一种爱好,但直到今天我仍然后悔,因为它现在控制了我们大部分的房子。我使用HomeAssistant将家里的所有系统连接在一起。虽然它确实是一个完整的应用程序,但您也可以将其安装为PythonPyPI包。我们的大部分灯具都是自动化的,我们的百叶窗也是如此。我监控我们的天然气使用、电力使用和生产(太阳能电池板)。我可以跟踪大多数手机的位置,并在进入某个区域后采取行动,例如回到家时打开车库灯。它还控制我们所有的娱乐系统,如三星电视和Sonos扬声器。它会自动发现网络上的大多数设备,因此入门很容易。我每天都使用HomeAssistant已经3年了,它仍处于测试阶段,但它是我尝试过的最好的平台。它能够集成和控制各种设备和协议,并且完全免费和开源。如果您对家庭自动化感兴趣,请确保您有机会!如果您想了解更多信息,请访问他们的官方网站。如果可以,请将其安装在RaspberryPi上。这是迄今为止最简单、最安全的入门方式。我将它安装在Docker容器内的更强大的服务器上。14.FlaskFlask是我用来创建快速网络服务或简单网站的首选库。这是一个微框架,这意味着Flask旨在保持核心简单但可扩展。有700多个官方和社区扩展。如果您知道您将开发一个大型Web应用程序,您可能想要研究一个更完整的框架。这个类别中最受欢迎的是Django。15.BeautifulSoup如果你从网站上提取了一些HTML,你需要解析它以获得你真正需要的东西。BeautifulSoup是一个用于从HTML和XML文件中提取数据的Python库。它提供了导航、搜索和修改解析树的简便方法。它非常强大,即使在损坏时也能处理各种HTML。相信我,HTML经常被破坏,所以这是一个非常强大的功能。它的一些主要功能:BeautifulSoup自动将传入文档转换为Unicode,将传出文档自动转换为UTF-8。您无需考虑编码。BeautifulSoup位于流行的Python解析器(如lxml和html5lib)之上,允许您尝试不同的解析策略或增加灵活性。BeautifulSoup将解析您提供的任何内容并为您进行树遍历。您可以告诉它“查找所有链接”或“查找加粗的表格标题,然后给我那个文本。”