初学者的15个Python实用库

news2024/9/21 12:37:29

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学习新篇章!让我们携手并进,在编程的海洋里探索无限可能

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2152337.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ThreadX源码:Cortex-A7的tx_thread_irq_nesting_end(嵌套中断结束动作).s汇编代码分析

0 参考资料 Cortex M3权威指南(中文).pdf(可以参考ARM指令集用法) 1 前言 tx_thread_irq_nesting_end.S是用来实现Cortex-A7 IRQ嵌套中断的结束函数实现的汇编文件。 2 源码分析 源码如下: 1.#ifdef TX_ENABLE_FIQ_SUPPORT 2.DISABLE_INT…

AIoT应用开发:给机器人装上‘眼睛‘,接入CV能力,实现人脸识别

最近新入手了一台 arm 开发板,希望打造一款有温度、有情怀的陪伴式 AI 对话机器人。 大体实现思路如下: 前几篇,给板子装上LLM 大脑、耳朵和嘴巴装上: 如何在手机端部署大模型?手机端跑大模型:Ollma/ll…

Windows通过网线传文件

文章目录 网线网络中看不到另一台计算机Nginx参考文献 网线 两台电脑用网线连接 电脑A 控制面板\网络和 Internet\网络和共享中心 → 更改适配器设置 → 右键以太网(未识别的网络) → 属性 → Internet 协议版本 4 (TCP/IPv4) 属性 → 使用下面的 IP …

【vmware】vmware中手动安装vmwaretools

问题: vmware中点击安装vmwaretools时出现如下: VMware Tools 不再随旧版客户机操作系统的 VMware Workstation 一起提供。 请从 https://packages-prod.broadcom.com/tools/frozen/windows/winPreVista.iso 下载,并参阅 https://knowledge.broadcom.co…

机器学习笔记(一)初识机器学习

1.定义 机器学习是一门多学科交叉专业,涵盖概率论知识,统计学知识,近似理论知识和复杂算法知识,使用计算机作为工具并致力于真实实时的模拟人类学习方式,并将现有内容进行知识结构划分来有效提高学习效率。 机器学习有…

2024年开放式蓝牙耳机十大排名震撼揭晓!哪款开放式耳机是音质王者?

​耳机市场上,有线入耳式、无线蓝牙入耳式和开放式耳机三足鼎立,各展风采。有线入耳式耳机虽然连接稳定,但线缆易缠绕,佩戴不够稳固;无线入耳式耳机虽然剪断了线的束缚,但长时间使用可能会引起耳朵不适。相…

人家90年代就尝试过的模式:我们所热衷的“数科公司”

在数字经济时代的浪潮中,央国企及一些大型集团企业作为经济发展的中流砥柱,正积极顺应时代潮流,加速数字化转型步伐。通过深度挖掘与整合内部资源,一批以数字经济为核心业务的“数科公司”应运而生,并迅速壮大&#xf…

SpringBoot设置mysql的ssl连接

因工作需要,mysql连接需要开启ssl认证,本文主要讲述客户端如何配置ssl连接。 开发环境信息: SpringBoot: 2.0.5.RELEASE mysql-connector-java: 8.0.18 mysql version:8.0.18 一、检查服务端是否开启ssl认…

Unity 设计模式 之 结构型模式 -【装饰者模式】【外观模式】【享元模式】【代理模式】

Unity 设计模式 之 结构型模式 -【装饰者模式】【外观模式】【享元模式】【代理模式】 目录 Unity 设计模式 之 结构型模式 -【装饰者模式】【外观模式】【享元模式】【代理模式】 一、简单介绍 二、装饰者模式(Decorator Pattern) 1、什么时候使用装…

OpenAI或于9月24日发布ChatGPT高级语音模式

🦉 AI新闻 🚀 OpenAI或于9月24日发布ChatGPT高级语音模式 摘要:科技媒体报道,OpenAI计划在9月24日进一步推广ChatGPT的高级语音模式,预计将正式发布。该模式于7月向部分ChatGPT Plus用户开放,提供更为真实…

心理辅导平台的构建:Spring Boot技术解析

3 系统分析 3.1可行性分析 在进行可行性分析时,我们通常根据软件工程里方法,通过四个方面来进行分析,分别是技术、经济、操作和法律可行性。因此,在基于对目标系统的基本调查和研究后,对提出的基本方案进行可行性分析。…

云栖大会Day1:云应用开发平台 CAP 来了

2024 云栖大会开幕,在大会第一天,阿里云正式发布全新产品——云应用开发平台 CAP。CAP 拥有丰富的场景化应用模板,可以极速体验,并且具备更低的成本优势以及灵活组装等特点,成为广大开发者与企业必备的一站式应用开发平…

芯片验证板卡设计原理图:372-基于XC7VX690T的万兆光纤、双FMC扩展的综合计算平台 RISCV 芯片验证平台

基于XC7VX690T的万兆光纤、双FMC扩展的综合计算平台 RISCV 芯片验证平台 一、板卡概述 基于V7的高性能PCIe信号处理板,北京太速科技板卡选用Xilinx 公司Virtex7系列FPGA XC7VX690T-2FFG1761C为处理芯片,板卡提供两个标准FMC插槽,适用于…

R18 NES 之SSB-less SCell operation for inter-band CA

在TR 21.918 Summary of Rel-18 Work Items 中可以看到SSB-less SCell operation for inter-band CA 是Network energy savings for NR 的一部分,其中还包括cell DTX/DRX 等等其他内容。 网络节能是 5G/NR 成功的关键,可以减少对环境的影响(温室气体排放)并节省运营成本。R…

全网首创开源:基于视频、物联、AI服务一体化解决方案

BasicLab-AIoT 引领创新智慧视觉物联网云平台,无界融合物联网技术、流媒体摄像头实时传输与AI人工智能解析,开启智能监控与数据分析新纪元。 我们不仅实现了设备的互联互通,更通过深度整合高清流媒体视频流与前沿AI算法,为摄像头…

Hive企业级调优[3]—— Explain 查看执行计划

Explain 查看执行计划 Explain 执行计划概述 EXPLAIN 命令呈现的执行计划由一系列 Stage 组成。这些 Stage 之间存在依赖关系,每一个 Stage 可能对应一个 MapReduce Job 或者一个文件系统的操作等。如果某 Stage 对应了一个 MapReduce Job,则该 Job 在 …

【开源】LVGL+FreeRTOS 基于STM32F411CEU6的健康助手项目制作

视频演示 【开源】LVGLFreeRTOS 基于STM32F411的智能健康助手小项目 网盘链接在最底下!!!无套路!!!直接分享!!! 硬件介绍 STM32F411CEU6 主控 TFT 1.8inch 显示屏 DTH…

基于SpringBoot+Vue的智慧物业管理系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、SSM项目源码 精品专栏:Java精选实战项目源码、Python精…

828华为云征文 | 云服务器Flexus X实例:one-api 部署,支持众多大模型

目录 一、one-api 介绍 二、部署 one-api 2.1 拉取镜像 2.2 部署 one-api 三、运行 one-api 3.1 添加规则 3.2 运行 one-api 四、添加大模型 API 4.1 添加大模型 API 五、总结 本文通过 Flexus云服务器X实例 部署 one-api。Flexus云服务器X实例是新一代面向中小企业…

SOC的几种估算方法

一、前言 一般来说,业内可以将SOC的精度做到5%左右,如果想要让SOC精度进一步提升,这时需要提高电流采样的精度或者提高电流在0点的宽度(业内一般是判断电流小于一定的值,则说明电流为0),但这种提…