初学者的15个Python实用库
Python 是初学者易于学习的一门语言,并且提供了大量的第三方库。超过230,000个用户贡献的包使得Python功能强大且广受欢迎。在本文中,我重点介绍了15个最有用的包,详细说明了它们的功能和特性。
这里插播一条粉丝福利,如果你正在学习Python或者有计划学习Python,想要突破自我,对未来十分迷茫的,可以点击这里获取最新的Python学习资料和学习路线规划(免费分享,记得关注)
Dash
Dash 是一个相对新的包,非常适合使用纯 Python 构建数据可视化应用程序。它对于任何处理数据的人都非常适合。Dash 结合了 Flask、Plotly.js 和 React.js。
Pygame
Pygame 是 SDL 多媒体库的 Python 包装器,这是一个跨平台的开发库,提供低级别的访问权限:
-
音频
-
键盘
-
鼠标
使用 OpenGL 和 Direct3D 的游戏手柄和图形硬件 Pygame 高度便携,几乎可以在每个平台和操作系统上运行。除了它全面的游戏引擎外,你还可以使用这个库直接从 Python 脚本播放 MP3 文件。
Pillow
Pillow 专门用于图像处理。你可以创建缩略图,转换文件格式,旋转,应用过滤器,显示图像等等。非常适合批量处理多张图片。这里有一个快速示例来加载和渲染一张图片:
from PIL import Image
im = Image.open("kittens.jpg")
im.show()
print(im.format, im.size, im.mode)
# 输出: JPEG (1920, 1357) RGB
Colorama
Colorama 允许你在终端中使用颜色。它非常适合 Python 脚本,文档简洁有趣,可在 Colorama PyPI 页面上找到。
JmesPath
由于 Python 字典的出色映射,Python 中使用 JSON 变得简单。Python 的内置 json
库非常适合解析和创建 JSON。JMESPath 使得 Python 中处理 JSON 更加容易,允许你清晰地指定如何从 JSON 文档中提取元素。以下是一些基本示例:
import jmespath
# 获取特定元素
d ={"foo": {"bar": "baz"}}
print(jmespath.search('foo.bar', d))
# 输出: baz
# 使用通配符获取所有名称
d ={"foo": {"bar": [{"name": "one"}, {"name": "two"}]}}
print(jmespath.search('foo.bar[*].name', d))
# 输出: ["one", "two"]
Requests
Requests 建立在 urllib3 库之上,使 web 请求变得简单、强大且多功能。这里有一个快速示例,展示了 Requests 的易用性。
import requests
r = requests.get('https://api.github.com/user', auth=('user', 'pass'))
r.status_code
# 200
r.headers['content-type']
# 'application/json; charset=utf8'
r.encoding
# 'utf-8'
r.text
# u'{"type":"User"...'
r.json()
# {u'disk_usage': 368627, u'private_gists': 484, ...}
Requests 可以处理高级任务,例如:
-
认证
-
Cookies
-
POST, PUT, DELETE 请求
-
自定义证书
-
会话
-
代理
Simplejson
Python 的内置 json
模块没有问题!实际上,Python 的 json
是基于 simplejson
的。
try:
import simplejson as json
except ImportError:
import json
Simplejson 有一些优势:
-
适用于更多 Python 版本。
-
更新频率比 Python 内置版本更频繁。
-
有可选的 C 部分以提高速度。
除非你需要:
-
速度
-
标准库中没有的功能
Simplejson 因为实现了一些关键部分的 C 语言,所以速度快得多。然而,这种速度优势只有在处理数百万 JSON 文件时才会显现。
Emoji
Emoji 库对于涉及 emoji 的媒体数据分析来说既有趣又有用。这里有一个简单的示例:
import emoji
result = emoji.emojize('Python is :thumbs_up:')
print(result)
# 'Python is 👍'
# 也可以反向操作:
result = emoji.demojize('Python is 👍')
print(result)
# 'Python is :thumbs_up:'
Chardet
Chardet 可以检测文件或数据流的字符集,在分析大量随机文本时非常有用。它在处理远程数据下载时,当字符集未知时也非常有用。
Python-dateutil
Python-dateutil 强大地扩展了标准 datetime
模块。当常规 Python datetime 功能结束时,python-dateutil 就开始发挥作用。你可以用这个库做很多很棒的事情。以下是我发现特别有用的示例:在日志文件中模糊解析日期:
from dateutil.parser import parse
logline ='INFO 2020-01-01T00:00:01 Happy new year, human.'
timestamp = parse(logline, fuzzy=True)
print(timestamp)
# 2020-01-01 00:00:01
有关更多特性,请查看完整文档:
-
计算相对差异(下个月,明年,下周一,月份的最后一周)以及两个给定日期对象之间的相对差异。
-
使用 iCalendar 标准超集的根据复发规则计算日期。
-
基于 tzfile 文件、TZ 环境字符串、iCalendar 格式文件、给定范围、本地时区、固定偏移时区、UTC 和基于 Windows 注册表的时区的时区(tzinfo)实现。
-
基于 Olson 数据库的最新世界时区信息。
-
使用西方、东正教或朱利安算法计算任何给定年份的复活节星期日。
进度条:progress 和 tqdm
这有点作弊,因为这是两个包,但忽略任何一个都是不公平的。创建自己的进度条可能很有趣,但使用 progress 或 tqdm 包更快且更少出错。使用 progress,你可以轻松创建进度条。
from progress.bar import Bar
bar = Bar('Processing', max=20)
for i inrange(20):
# 做一些工作
bar.next()
bar.finish()
Tqdm 提供了类似的功能,看起来更新更频繁。以下是一些开始的 gif 演示:
IPython
你可能知道 Python 的交互式 shell,这是运行 Python 的一种很好的方式。但你知道 IPython shell 吗?如果你经常使用交互式 shell 但还没有尝试过 IPython,你应该去看看!IPython 的一些增强功能包括:
-
综合的对象内省。
-
输入历史记录,在会话之间持久。
-
在会话期间输出结果缓存并自动引用。
-
标签补全 Python 变量、关键字、文件名和函数关键字。
-
控制环境和执行与 IPython 或 OS 相关的许多任务的“魔法”命令。
-
会话日志记录和重新加载。
-
集成访问 pdb 调试器和 Python 分析器。
-
一个鲜为人知的特性:IPython 的架构还允许并行和分布式计算。
IPython 是 Jupyter Notebook 的核心,Jupyter Notebook 是一个开源的 web 应用程序,用于创建和共享带有实时代码、方程、可视化和叙述文本的文档。
Home Assistant
我使用 Home Assistant 将我们房子里的所有系统集成在一起:
-
它是一个完整的应用程序,但你也可以将其作为 Python PyPI 包安装。
-
我们的大部分灯和百叶窗都是自动化的。
-
我监控我们的燃气使用、电力消耗和生产(太阳能电池板)。
-
我可以追踪大多数手机的位置,并在进入某个区域时触发动作,比如当我到家时打开车库灯。
-
它控制了我们所有的娱乐系统,如三星电视和 Sonos 扬声器。
-
它可以自动发现网络上的大多数设备,使设置变得容易。
-
我已经连续三年每天使用 Home Assistant。它仍在测试中,但这是我尝试过的最好的平台。
-
它集成和控制各种设备和协议,全部免费且开源。
Flask
Flask 是我创建快速 web 服务或简单网站的 go-to 库。它是一个微框架,意味着 Flask 旨在保持核心简单但可扩展。有超过 700 个官方和社区扩展。如果你知道自己将开发一个大型 web 应用程序,你可能想看看一个更全面的框架。这一类中最受欢迎的是 Django。
BeautifulSoup
从网站提取 HTML 时,你需要解析它以获取你想要的内容。Beautiful Soup 是一个 Python 库,用于从 HTML 和 XML 文件中提取数据。它提供了简单的方法来导航、搜索和修改解析树。它非常强大,可以处理各种 HTML,即使是损坏的 HTML。一些关键特性如下:
-
Beautiful Soup 自动将传入的文档转换为 Unicode,将传出的文档转换为 UTF-8。你不需要担心编码问题。
-
Beautiful Soup 位于流行的 Python 解析器之上,如 XML 和 html5lib,给你尝试不同解析策略的灵活性。
-
Beautiful Soup 会解析你提供的任何内容,并为你完成树遍历工作。你可以告诉它“找到所有的链接”或者“找到加粗的表格
-
为此,我们精心筹备了一份全面的Python学习大礼包,完全免费分享给每一位渴望成长、希望突破自我现状却略感迷茫的朋友。无论您是编程新手还是希望深化技能的开发者,都欢迎加入我们的学习之旅,共同交流进步!
-
🌟 学习大礼包包含内容:
Python全领域学习路线图:一目了然,指引您从基础到进阶,再到专业领域的每一步学习路径,明确各方向的核心知识点。
超百节Python精品视频课程:涵盖Python编程的必备基础知识、高效爬虫技术、以及深入的数据分析技能,让您技能全面升级。
实战案例集锦:精选超过100个实战项目案例,从理论到实践,让您在解决实际问题的过程中,深化理解,提升编程能力。
华为独家Python漫画教程:创新学习方式,以轻松幽默的漫画形式,让您随时随地,利用碎片时间也能高效学习Python。
互联网企业Python面试真题集:精选历年知名互联网企业面试真题,助您提前备战,面试准备更充分,职场晋升更顺利。
👉 立即领取方式:只需【点击这里】,即刻解锁您的Python学习新篇章!让我们携手并进,在编程的海洋里探索无限可能
原文地址:https://blog.csdn.net/biancheng_syz/article/details/142413941
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!