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

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

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

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

用上这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 工具库,欢迎你在评论区补充。感谢你的阅读,如果你喜欢我的分享,别忘了点赞转发,让更多的人看到,最后别忘记关注「前端达人」,你的支持将是我分享最大的动力,后续我会持续输出更多内容,敬请期待。

相关推荐

Excel新函数TEXTSPLIT太强大了,轻松搞定数据拆分!

我是【桃大喵学习记】,欢迎大家关注哟~,每天为你分享职场办公软件使用技巧干货!最近我把WPS软件升级到了版本号:12.1.0.15990的最新版本,最版本已经支持文本拆分函数TEXTSPLIT了,并...

Excel超强数据拆分函数TEXTSPLIT,从入门到精通!

我是【桃大喵学习记】,欢迎大家关注哟~,每天为你分享职场办公软件使用技巧干货!今天跟大家分享的是Excel超强数据拆分函数TEXTSPLIT,带你从入门到精通!TEXTSPLIT函数真是太强大了,轻松...

看完就会用的C++17特性总结(c++11常用新特性)

作者:taoklin,腾讯WXG后台开发一、简单特性1.namespace嵌套C++17使我们可以更加简洁使用命名空间:2.std::variant升级版的C语言Union在C++17之前,通...

plsql字符串分割浅谈(plsql字符集设置)

工作之中遇到的小问题,在此抛出问题,并给出解决方法。一方面是为了给自己留下深刻印象,另一方面给遇到相似问题的同学一个解决思路。如若其中有写的不好或者不对的地方也请不加不吝赐教,集思广益,共同进步。遇到...

javascript如何分割字符串(javascript切割字符串)

javascript如何分割字符串在JavaScript中,您可以使用字符串的`split()`方法来将一个字符串分割成一个数组。`split()`方法接收一个参数,这个参数指定了分割字符串的方式。如...

TextSplit函数的使用方法(入门+进阶+高级共八种用法10个公式)

在Excel和WPS新增的几十个函数中,如果按实用性+功能性排名,textsplit排第二,无函数敢排第一。因为它不仅使用简单,而且解决了以前用超复杂公式才能搞定的难题。今天小编用10个公式,让你彻底...

Python字符串split()方法使用技巧

在Python中,字符串操作可谓是基础且关键的技能,而今天咱们要重点攻克的“堡垒”——split()方法,它能将看似浑然一体的字符串,按照我们的需求进行拆分,极大地便利了数据处理与文本解析工作。基本语...

go语言中字符串常用的系统函数(golang 字符串)

最近由于工作比较忙,视频有段时间没有更新了,在这里跟大家说声抱歉了,我尽快抽些时间整理下视频今天就发一篇关于go语言的基础知识吧!我这我工作中用到的一些常用函数,汇总出来分享给大家,希望对...

无规律文本拆分,这些函数你得会(没有分隔符没规律数据拆分)

今天文章来源于表格学员训练营群内答疑,混合文本拆分。其实拆分不难,只要规则明确就好办。就怕规则不清晰,或者规则太多。那真是,Oh,mygod.如上图所示进行拆分,文字表达实在是有点难,所以小熊变身灵...

Python之文本解析:字符串格式化的逆操作?

引言前面的文章中,提到了关于Python中字符串中的相关操作,更多地涉及到了字符串的格式化,有些地方也称为字符串插值操作,本质上,就是把多个字符串拼接在一起,以固定的格式呈现。关于字符串的操作,其实还...

忘记【分列】吧,TEXTSPLIT拆分文本好用100倍

函数TEXTSPLIT的作用是:按分隔符将字符串拆分为行或列。仅ExcelM365版本可用。基本应用将A2单元格内容按逗号拆分。=TEXTSPLIT(A2,",")第二参数设置为逗号...

Excel365版本新函数TEXTSPLIT,专攻文本拆分

Excel中字符串的处理,拆分和合并是比较常见的需求。合并,当前最好用的函数非TEXTJOIN不可。拆分,Office365于2022年3月更新了一个专业函数:TEXTSPLIT语法参数:【...

站长在线Python精讲使用正则表达式的split()方法分割字符串详解

欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是《在Python中使用正则表达式的split()方法分割字符串详解》。使用正则表达式分割字符串在Python中使用正则表达式的split(...

Java中字符串分割的方法(java字符串切割方法)

技术背景在Java编程中,经常需要对字符串进行分割操作,例如将一个包含多个信息的字符串按照特定的分隔符拆分成多个子字符串。常见的应用场景包括解析CSV文件、处理网络请求参数等。实现步骤1.使用Str...

因为一个函数strtok踩坑,我被老工程师无情嘲笑了

在用C/C++实现字符串切割中,strtok函数经常用到,其主要作用是按照给定的字符集分隔字符串,并返回各子字符串。但是实际上,可不止有strtok(),还有strtok、strtok_s、strto...