百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

7个常用Python工具库及使用方法,助你成为高效开发者

itomcoil 2025-02-27 15:35 26 浏览

转载说明:原创不易,未经授权,谢绝任何形式的转载

用上这7个库,加速你的项目开发

在Python应用程序开发中,通常需要使用各种工具库来完成各种任务,比如处理电子邮件地址、解析JSON数据、读取Excel文件等等。在这篇文章中,我们将介绍一些常用的Python工具库,讨论它们的用途、功能和特点,并提供一些示例代码,帮助读者更好地理解这些工具库的使用方法。

1. EasyOCR

EasyOCR是一个Python工具库,它提供了一个简单易用的OCR(Optical Character Recognition,光学字符识别)解决方案,用于自然场景下的文字识别。它可以识别多种语言的文字,包括中文、英文、日文、韩文、阿拉伯文等,同时支持多种文字方向,包括横向、竖向、混合方向。

EasyOCR基于深度学习模型,使用了目前最先进的OCR技术,可以识别多种字体、字号、文字颜色和背景的文字。它还支持端到端的文本检测和识别,可以在一张图像中同时检测和识别多行文字,大大提高了文字识别的效率。

下面是一个简单的入门示例,使用EasyOCR识别一张图片中的文字:

import easyocr

# 创建EasyOCR对象
reader = easyocr.Reader(['ch_sim', 'en'], gpu=False)

# 读入图像
image = 'example.png'

# 进行OCR识别
result = reader.readtext(image)

# 输出识别结果
for r in result:
    print(r[1])

在这个示例中,我们首先创建了一个EasyOCR对象,指定了要识别的语言(中文和英文),并设置了使用CPU进行识别。然后,我们读入一张图像,调用reader.readtext方法进行OCR识别,得到了识别结果。最后,我们遍历识别结果,并输出识别出的文字。

需要注意的是,由于EasyOCR使用了深度学习模型,因此需要较大的计算资源和较长的识别时间。在实际应用中,可以通过调整参数、选择合适的设备等方式来优化识别效率。

https://github.com/JaidedAI/EasyOCR

2. Websockets

Websockets是一个Python工具库,用于在Python应用程序中实现WebSocket协议的客户端和服务器。WebSocket协议是一种在客户端和服务器之间实现双向通信的协议,可以让服务器主动向客户端推送消息,而不需要客户端不断地向服务器发送请求。

Websockets库提供了一个简单易用的API,可以让Python程序快速地实现WebSocket通信功能。它支持异步IO模型,可以在异步框架(如asyncio)中使用。

下面是一个简单的入门示例,使用Websockets库实现一个WebSocket服务器:

import asyncio
import websockets

async def echo(websocket, path):
    async for message in websocket:
        await websocket.send(message)

async def main():
    async with websockets.serve(echo, "localhost", 8765):
        await asyncio.Future()  # Run forever.

asyncio.run(main())

在这个示例中,我们首先定义了一个名为echo的协程函数,用于处理客户端发送的消息。在这个函数中,我们使用了async for循环来接收客户端发送的消息,并使用await websocket.send方法将消息原样返回给客户端。

然后,我们定义了一个名为main的协程函数,用于启动WebSocket服务器。在这个函数中,我们使用websockets.serve方法来创建一个WebSocket服务器,指定了要监听的地址和端口,以及要处理客户端连接的协程函数。

最后,我们使用asyncio.run方法来运行main协程函数,启动WebSocket服务器并等待客户端连接。该服务器会一直运行,直到程序被手动终止。

需要注意的是,WebSocket服务器需要在异步框架中运行,因此我们在示例中使用了asyncio库来实现异步IO。同时,Websockets库还支持其他的异步框架,如Trio和Curio等。

https://github.com/aaugustin/websockets

3. Gspread

gspread是一个Python工具库,有海外应用开发需求的朋友也许用的上,这个库用于在Google Sheets中读取和写入数据。Google Sheets是一款在线电子表格软件,可以让用户轻松地创建、编辑和共享电子表格。

gspread库提供了一个简单易用的API,可以让Python程序轻松地读取和写入Google Sheets中的数据。它使用Google Sheets API与Google Sheets进行通信,并支持OAuth2身份验证机制,保证了数据的安全性。

下面是一个简单的入门示例,使用gspread库读取一个Google Sheets电子表格中的数据:

import gspread
from oauth2client.service_account import ServiceAccountCredentials

# 定义OAuth2凭证
scope = ['https://www.googleapis.com/auth/spreadsheets']
creds = ServiceAccountCredentials.from_json_keyfile_name('creds.json', scope)

# 授权访问
client = gspread.authorize(creds)

# 打开电子表格
sheet = client.open('My Spreadsheet').sheet1

# 读取数据
data = sheet.get_all_records()

# 输出数据
print(data)

在这个示例中,我们首先定义了一个OAuth2凭证,用于授权访问Google Sheets API。然后,我们使用gspread库的authorize方法来进行身份验证,并获取一个Client对象。

接着,我们使用client.open方法打开一个名为My Spreadsheet的电子表格,并获取其中的第一个工作表(即sheet1)。然后,我们使用sheet.get_all_records方法来读取所有行的数据,并将其保存到一个字典列表中。

最后,我们输出读取到的数据。需要注意的是,gspread库还提供了许多其他的方法,用于在Google Sheets中读取和写入数据,如sheet.cell、sheet.update等方法。

需要使用gspread库操作Google Sheets电子表格,需要在Google Developers Console中创建一个项目并启用Google Sheets API。然后,可以创建一个服务账户,并将其授权访问所需的电子表格。在示例中,我们通过一个名为creds.json的JSON文件来指定服务账户的凭证信息。

https://github.com/burnash/gspread

4. Maya

maya是一个Python日期和时间工具库,用于处理、格式化和解析日期和时间。它提供了一种简单易用的API,可以帮助开发者快速处理各种时间相关的问题。

下面是一个简单的入门示例,使用maya库创建一个日期对象,并将其格式化为字符串:

import maya

# 创建一个日期对象
dt = maya.now()

# 格式化为字符串
str_dt = dt.iso8601()

# 输出日期字符串
print(str_dt)

在这个示例中,我们首先使用maya库的now方法创建了一个当前日期时间的日期对象。然后,我们使用日期对象的iso8601方法将其格式化为ISO 8601标准的日期时间字符串。最后,我们输出格式化后的字符串。

需要注意的是,maya库还提供了许多其他有用的方法和属性,如parse方法、timezone属性、humanize方法等,用于解析日期时间字符串、处理时区信息和将日期时间转换为人类可读的格式。

maya库的一个主要特点是其智能日期时间解析能力。它可以自动解析各种日期时间字符串,如2019-01-01、01/01/2019、2019年1月1日等,无需指定解析格式。如果解析失败,它会自动尝试使用其他可能的格式进行解析,从而提高了解析成功的概率。

在使用maya库时,需要先安装它,可以通过pip来安装。安装完成后,就可以在Python程序中导入maya库,并开始使用它提供的各种功能了。

https://github.com/timofurrer/maya

5. Chardet

chardet是一个Python编码检测库,它可以自动检测给定文本的编码方式。这个工具库可以用于识别各种编码,包括ASCII、UTF-8、GB2312等等。如果你有一个文本文件或者一个字符串,但是不确定它的编码方式,chardet就可以帮你解决这个问题。

下面是一个简单的入门示例,演示如何使用chardet库来检测一个字符串的编码方式:

import chardet

# 待检测的字符串
text = '这是一段中文文本'

# 检测编码方式
result = chardet.detect(text.encode())

# 输出结果
print(result)

在这个示例中,我们首先将一个中文文本字符串text进行编码,并将其作为参数传递给detect方法,用来检测该字符串的编码方式。然后,我们将检测结果输出到控制台。

chardet库还提供了一些其他的API,比如UniversalDetector类,可以用来检测一个文件的编码方式。此外,还有一些配置选项可以用来调整检测的精度和速度。

需要注意的是,由于chardet库是基于统计方法进行编码检测的,因此可能会出现一定的误判情况。在某些情况下,可能需要使用人工的方式来确认编码方式。

在使用chardet库时,需要先安装它,可以通过pip来安装。安装完成后,就可以在Python程序中导入chardet库,并开始使用它提供的各种功能了。

https://github.com/chardet/chardet

6. Ultrajson

ultrajson是一个Python的JSON编解码器,它提供了非常快速和高效的JSON编解码能力。它的实现使用C和Python的混合编程方式,兼具高性能和易用性,是Python应用中处理JSON数据的一个非常好的选择。

下面是一个简单的入门示例,演示如何使用ultrajson库来将Python数据结构转换为JSON格式:

import ujson as json

# 定义一个Python数据结构
data = {
    "name": "John",
    "age": 30,
    "city": "New York"
}

# 将数据结构转换为JSON格式
json_data = json.dumps(data)

# 输出JSON格式的数据
print(json_data)

在这个示例中,我们首先定义了一个Python数据结构data,然后使用dumps方法将其转换为JSON格式。最后,我们将JSON格式的数据输出到控制台。

与Python标准库中的json模块相比,ultrajson库提供了更快的JSON编解码速度。此外,ultrajson库还提供了一些其他的高级功能,比如对Unicode字符的支持、对二进制数据的支持等等。

需要注意的是,由于ultrajson库并不是标准的Python库,因此需要先安装它,可以通过pip来安装。安装完成后,就可以在Python程序中导入ultrajson库,并开始使用它提供的各种功能了。

https://github.com/ultrajson/ultrajson

7. Flanker

flanker是一个Python工具库,提供了各种电子邮件地址验证和解析功能。它可以用来解析和规范化电子邮件地址,提取电子邮件地址的组成部分,验证电子邮件地址的有效性,并进行反垃圾邮件(anti-spam)处理等等。

下面是一个简单的入门示例,演示如何使用flanker库来解析和验证电子邮件地址:

from flanker.addresslib import address

# 定义一个电子邮件地址
email = 'john.doe@example.com'

# 使用flanker库来解析电子邮件地址
parsed_email = address.parse(email)

# 输出电子邮件地址的各个组成部分
print('Username:', parsed_email.mailbox)
print('Domain:', parsed_email.hostname)

# 验证电子邮件地址的有效性
if address.validate_address(email):
    print('Valid email address')
else:
    print('Invalid email address')

在这个示例中,我们首先定义了一个电子邮件地址email,然后使用flanker库中的address.parse方法来解析这个电子邮件地址。address.parse方法会将电子邮件地址解析成一个Address对象,该对象包含了电子邮件地址的各个组成部分。我们通过Address对象的mailbox属性和hostname属性来获取电子邮件地址的用户名和域名。

接下来,我们使用flanker库中的address.validate_address方法来验证电子邮件地址的有效性。如果电子邮件地址有效,就输出Valid email address,否则输出Invalid email address。

需要注意的是,flanker库可以处理多种不同格式的电子邮件地址,包括RFC 5322格式、RFC 6531格式、RFC 6532格式等等。如果您需要在Python应用中处理电子邮件地址,可以考虑使用flanker库来简化这个过程。

https://github.com/mailgun/flanker

结束

在本文中,我们介绍了一些常用的Python工具库,包括EasyOCR、websockets、gspread、maya、chardet和flanker。这些工具库可以帮助Python开发者更轻松地完成各种任务,提高开发效率和代码质量。如果你正在开发一个Python应用程序,不妨考虑使用其中的一些工具库来简化你的工作。当然,这些工具库只是Python生态系统中的一小部分,还有很多其他有用的工具库等待你去发现和使用。

今天的分享就到这里,希望对你有所帮助。如果你知道任何其他高效的 Python 工具库,欢迎你在评论区补充。感谢你的阅读,如果你喜欢我的分享,别忘了点赞转发,让更多的人看到,最后别忘记关注「前端达人」,你的支持将是我分享最大的动力,后续我会持续输出更多内容,敬请期待。

相关推荐

Python Qt GUI设计:将UI文件转换Python文件三种妙招(基础篇—2)

在开始本文之前提醒各位朋友,Python记得安装PyQt5库文件,Python语言功能很强,但是Python自带的GUI开发库Tkinter功能很弱,难以开发出专业的GUI。好在Python语言的开放...

Connect 2.0来了,还有Nuke和Maya新集成

ftrackConnect2.0现在可以下载了--重新设计的桌面应用程序,使用户能够将ftrackStudio与创意应用程序集成,发布资产等。这个新版本的发布中还有两个Nuke和Maya新集成,...

Magicgui:不会GUI编程也能轻松构建Python GUI应用

什么是MagicguiMagicgui是一个Python库,它允许开发者仅凭简单的类型注解就能快速构建图形用户界面(GUI)应用程序。这个库基于Napari项目,利用了Python的强大类型系统,使得...

Python入坑系列:桌面GUI开发之Pyside6

阅读本章之后,你可以掌握这些内容:Pyside6的SignalsandSlots、Envents的作用,如何使用?PySide6的Window、DialogsandAlerts、Widgets...

Python入坑系列-一起认识Pyside6 designer可拖拽桌面GUI

通过本文章,你可以了解一下内容:如何安装和使用Pyside6designerdesigner有哪些的特性通过designer如何转成python代码以前以为Pyside6designer需要在下载...

pyside2的基础界面(pyside2显示图片)

今天我们来学习pyside2的基础界面没有安装过pyside2的小伙伴可以看主页代码效果...

Python GUI开发:打包PySide2应用(python 打包pyc)

之前的文章我们介绍了怎么使用PySide2来开发一个简单PythonGUI应用。这次我们来将上次完成的代码打包。我们使用pyinstaller。注意,pyinstaller默认会将所有安装的pack...

使用PySide2做窗体,到底是怎么个事?看这个能不能搞懂

PySide2是Qt框架的Python绑定,允许你使用Python创建功能强大的跨平台GUI应用程序。PySide2的基本使用方法:安装PySide2pipinstallPy...

pycharm中conda解释器无法配置(pycharm安装的解释器不能用)

之前用的好好的pycharm正常配置解释器突然不能用了?可以显示有这个环境然后确认后可以conda正在配置解释器,但是进度条结束后还是不成功!!试过了pycharm重启,pycharm重装,anaco...

Conda使用指南:从基础操作到Llama-Factory大模型微调环境搭建

Conda虚拟环境在Linux下的全面使用指南:从基础操作到Llama-Factory大模型微调环境搭建在当今的AI开发与数据分析领域,conda虚拟环境已成为Linux系统下管理项目依赖的标配工具。...

Python操作系统资源管理与监控(python调用资源管理器)

在现代计算环境中,对操作系统资源的有效管理和监控是确保应用程序性能和系统稳定性的关键。Python凭借其丰富的标准库和第三方扩展,提供了强大的工具来实现这一目标。本文将探讨Python在操作系统资源管...

本地部署开源版Manus+DeepSeek创建自己的AI智能体

1、下载安装Anaconda,设置conda环境变量,并使用conda创建python3.12虚拟环境。2、从OpenManus仓库下载代码,并安装需要的依赖。3、使用Ollama加载本地DeepSe...

一文教会你,搭建AI模型训练与微调环境,包学会的!

一、硬件要求显卡配置:需要Nvidia显卡,至少配备8G显存,且专用显存与共享显存之和需大于20G。二、环境搭建步骤1.设置文件存储路径非系统盘存储:建议将非安装版的环境文件均存放在非系统盘(如E盘...

使用scikit-learn为PyTorch 模型进行超参数网格搜索

scikit-learn是Python中最好的机器学习库,而PyTorch又为我们构建模型提供了方便的操作,能否将它们的优点整合起来呢?在本文中,我们将介绍如何使用scikit-learn中的网格搜...

如何Keras自动编码器给极端罕见事件分类

全文共7940字,预计学习时长30分钟或更长本文将以一家造纸厂的生产为例,介绍如何使用自动编码器构建罕见事件分类器。现实生活中罕见事件的数据集:背景1.什么是极端罕见事件?在罕见事件问题中,数据集是...