冷门但好用的 Python 库推荐一波

你可能不知道的五个实用的 Python 模块 Python 标准库有超过 200 个模块,程序员可以在他们的程序中导入和使用。虽然普通程序员对其中许多模块都有一些经验,但很可能有一些好用的模块他们仍然没有注意到。 我发现其中许多模块都包含了在各个领域都非常有用的函数。比较数据集、协作其他函数以及音频处理等都可以仅使用 Python 就可以自动完成。 因此,我编制了一份您可能不知道的 Python 模块的候选清单,并对这几个模块进行了适当的解释,以便您在将来理解和使用它们。 所有这些模块都有不同的函数和类。我包含了几个鲜为人知的函数和类,因此即.. 阅读详情

 
点击上方“菜鸟学Python”,选择“星标”公众号

超级无敌干货,第一时间送达!!!

53a474fa6e603f5508b044bf4aeab8b5.jpeg

Python 标准库有超过 200 个模块,程序员可以在他们的程序中导入和使用。虽然普通程序员对其中许多模块都有一些经验,但很可能有一些好用的模块他们仍然没有注意到。

我发现其中许多模块都包含了在各个领域都非常有用的函数。比较数据集、协作其他函数以及音频处理等都可以仅使用 Python 就可以自动完成。

因此,我编制了一份您可能不知道的 Python 模块的候选清单,并对这几个模块进行了适当的解释,以便您在将来理解和使用它们。

所有这些模块都有不同的函数和类,本文包含了几个鲜为人知的函数和类,因此即使您听说过这些模块,也可能不知道它们的某些方面和用途。

1. difflib

difflib 是一个专注于比较数据集(尤其是字符串)的 Python 模块。为了具体了解您可以使用此模块完成的几件事,让我们检查一下它的一些最常见的函数。

SequenceMatcher

SequenceMatcher 是一个比较两个字符串并根据它们的相似性返回数据的函数。通过使用 ratio(),我们将能够根据比率/百分比来量化这种相似性。

语法:

SequenceMatcher(None, string1, string2)

下面这个简单的例子展示了该函数的作用:

from difflib import SequenceMatcher

phrase1 = "Tandrew loves Trees."
phrase2 = "Tandrew loves to mount Trees."
similarity = SequenceMatcher(None, phrase1, phrase2)
print(similarity.ratio())
# Output: 0.8163265306122449

get_close_matches

接下来是 get_close_matches,该函数返回与作为参数传入的字符串最接近的匹配项。

语法:

get_close_matches(word, possibilities, result_limit, min_similarity)

下面解释一下这些可能有些混乱的参数:

  • word 是函数将要查看的目标单词。

  • possibilities 是一个数组,其中包含函数将要查找的匹配项并找到最接近的匹配项。

  • result_limit 是返回结果数量的限制(可选)。

  • min_similarity 是两个单词需要具有的最小相似度才能被函数视为返回值(可选)。

下面是它的一个使用示例:

from difflib import get_close_matches

word = 'Tandrew'
possibilities = ['Andrew', 'Teresa', 'Kairu', 'Janderson', 'Drew']

print(get_close_matches(word, possibilities))
# Output: ['Andrew']

除此之外还有几个是可以查看的属于 Difflib 的其他一些方法和类:unified_diff、Differ和 diff_bytes。

2. sched

sched 是一个有用的模块,它以跨平台工作的事件调度为中心,与 Windows 上的任务调度程序等工具形成鲜明对比。大多数情况下,使用此模块时,都会使用 schedular 类。

更常见的 time 模块通常与 sched 一起使用,因为它们都处理时间和调度的概念。

创建一个 schedular 实例:

schedular_name = sched.schedular(time.time, time.sleep)

可以从这个实例中调用各种方法。

  • 调用 run() 时,调度程序中的事件/条目会按照顺序被调用。在安排完事件后,此函数通常出现在程序的最后。

  • enterabs() 是一个函数,它本质上将事件添加到调度程序的内部队列中。它按以下顺序接收几个参数:

    • 事件执行的时间

    • 活动优先级

    • 事件本身(一个函数)

    • 事件函数的参数

    • 事件的关键字参数字典

下面是一个示例,说明如何一起使用这两个函数:

import sched
import time


def event_notification(event_name):
    print(event_name + " has started")


my_schedular = sched.scheduler(time.time, time.sleep)
closing_ceremony = my_schedular.enterabs(time.time(), 1, event_notification, ("The Closing Ceremony", ))

my_schedular.run()
# Output: The Closing Ceremony has started

还有几个扩展 sched 模块用途的函数:cancel()、enter() 和 empty()。

3. binaascii

binaascii 是一个用于在二进制和 ASCII 之间转换的模块。

b2a_base64 是 binaascii 模块中的一种方法,它将 base64 数据转换为二进制数据。

下面是这个方法的一个例子:

import base64
import binascii

msg = "Tandrew"
encoded = msg.encode('ascii')
base64_msg = base64.b64encode(encoded)
decode = binascii.a2b_base64(base64_msg)
print(decode)
# Output: b'Tandrew'

该段代码应该是不言自明的,简单地说,它涉及编码、转换为 base64,以及使用 b2a_base64 方法将其转换回二进制。

以下是属于 binaascii 模块的其他一些函数:a2b_qp()、b2a_qp() 和 a2b_uu()。

4. tty

tty 是一个包含多个实用函数的模块,可用于处理 tty 设备。

以下是它的两个函数:

  • setraw() 将其参数 (fd) 中文件描述符的模式更改为 raw。

  • setcbreak() 将其参数 (fd) 中的文件描述符的模式更改为 cbreak。

由于需要使用 termios 模块,该模块仅适用于 Unix,例如在上述两个函数中指定第二个参数(when=termios.TCSAFLUSH)。

5. weakref

weakref 是一个用于在 Python 中创建对对象的弱引用的模块。

弱引用是不保护给定对象不被垃圾回收机制收集的引用。

以下是与该模块相关的两个函数:

  • getweakrefcount() 接受一个对象作为参数,并返回引用该对象的弱引用的数量。

  • getweakrefs() 接受一个对象并返回一个数组,其中包含引用该对象的所有弱引用。

weakref 及其函数的使用示例:

import weakref

class Book:
    def print_type(self):
        print("Book")

lotr = Book
num = 1
rcount_lotr = str(weakref.getweakrefcount(lotr))
rcount_num = str(weakref.getweakrefcount(num))
rlist_lotr = str(weakref.getweakrefs(lotr))
rlist_num = str(weakref.getweakrefs(num))

print("number of weakrefs of 'lotr': " + rcount_lotr)
print("number of weakrefs of 'num': " + rcount_num)
print("Weakrefs of 'lotr': " + rlist_lotr)
print("Weakrefs of 'num': " + rlist_num)
# Output: 
# number of weakrefs of 'lotr': 1
# number of weakrefs of 'num': 0
# Weakrefs of 'lotr': [<weakref at 0x10b978a90; to 'type' at #0x7fb7755069f0 (Book)>]
# Weakrefs of 'num': []

输出从输出的函数返回值我们可以看到它的作用。由于 num 没有弱引用,因此 getweakrefs() 返回的数组为空。

以下是与 weakref 模块相关的一些其他函数:ref()、proxy() 和 _remove_dead_weakref()。

总结

  • Difflib 是一个用于比较数据集,尤其是字符串的模块。例如,SequenceMatcher 可以比较两个字符串并根据它们的相似性返回数据。

  • sched 是与 time 模块一起使用的有用工具,用于使用 schedular 实例安排事件(以函数的形式)。例如,enterabs() 将一个事件添加到调度程序的内部队列中,该队列将在调用 run() 函数时运行。

  • binaascii 可在二进制和 ASCII 之间转换以编码和解码数据。b2a_base64 是 binaascii 模块中的一种方法,它将 base64 数据转换为二进制数据。

  • tty 模块需要配合使用 termios 模块,并处理 tty 设备。它仅适用于 Unix。

  • weakref 用于弱引用。它的函数可以返回对象的弱引用,查找对象的弱引用数量等。其中非常使用的函数之一是 getweakrefs(),它接受一个对象并返回一个该对象包含的所有弱引用的数组。

这些函数中的每一个都有其各自的用途,每一个都有不同程度的有用性。了解尽可能多的 Python 函数和模块非常重要,以便保持稳定的工具库,使得我们可以在编写代码时快速使用。

原文[1]

好了,这就是今天分享的全部内容,喜欢就点个赞吧~

参考资料

[1]

原文: https://python.plainenglish.io/5-python-modules-no-one-knows-about-3398f436fcfe


 

推荐阅读:

入门: 最全的零基础学Python的问题  | 零基础学了8个月的Python  | 实战项目 |学Python就是这条捷径

干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析 |   从万众期待到口碑扑街!唐探3令人失望  | 笑看新倚天屠龙记 | 灯谜答题王 |用Python做个海量小姐姐素描图 |碟中谍这么火,我用机器学习做个迷你推荐系统电影

趣味:弹球游戏  | 九宫格  | 漂亮的花 | 两百行Python《天天酷跑》游戏!

AI: 会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影

小工具: Pdf转Word,轻松搞定表格和水印! | 一键把html网页保存为pdf!|  再见PDF提取收费! | 用90行代码打造最强PDF转换器,word、PPT、excel、markdown、html一键转换 | 制作一款钉钉低价机票提示器! |60行代码做了一个语音壁纸切换器天天看小姐姐!|

年度爆款文案
1).卧槽!Pdf转Word用Python轻松搞定!
2).学Python真香!我用100行代码做了个网站,帮人PS旅行图片,赚个鸡腿吃
3).首播过亿,火爆全网,我分析了《乘风破浪的姐姐》,发现了这些秘密 
4).80行代码!用Python做一个哆来A梦分身 
5).你必须掌握的20个python代码,短小精悍,用处无穷 
6).30个Python奇淫技巧集 
7).我总结的80页《菜鸟学Python精选干货.pdf》,都是干货 
8).再见Python!我要学Go了!2500字深度分析!
9).发现一个舔狗福利!这个Python爬虫神器太爽了,自动下载妹子图片

点阅读原文,看B站50个Python实战视频!
Python实现字符串模糊匹配方式 这篇文章主要介绍了Python实现字符串模糊匹配方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教Python的difflib库中get_close_matches方法1234 123 11利用这个功能就能够实现SQL中的LIKE模糊查询。 1234567891011121314 以上为个人经验,希望能给大家一个参考,转自:https://www.weidianyuedu.com 阅读详情

相关推荐

让AI稳定生成流程图:基于Skill与Mermaid的工程化实践

流程图是软件工程中沟通业务逻辑的通用语言,但其绘制与维护却长期依赖手工工具,导致文档更新滞后、协作成本高。随着大语言模型技术的成熟,自然语言生成代码已成为可落地的技术路径,而Mermaid作为一款文本化图表语法,凭借其可版本管理、可自动渲染和可嵌入文档的优势,正逐步取代传统绘图工具。要让AI稳定输出合格的流程图,关键在于为模型定义一套清晰的Skill规则,约束输入结构、处理逻辑和输出格式。本文从流程图的工程痛点出发,介绍如何利用大模型将自然语言描述转化为结构化文本,再通过Mermaid CLI渲染成可视化图

weixin_42548782的博客 314

Python difflib.get_close_matches 文本匹配

Python difflib.get_close_matches。

zlc1990628的博客 1085

从零构建:基于Docker与FRR的OSPF虚拟网络实验室

本文详细介绍了如何利用Docker与FRR构建OSPF虚拟网络实验室,从环境设计到高级网络拓扑配置,再到实验验证与排错。通过容器化技术实现高效资源利用和快速部署,特别适合网络协议教学、企业网络架构验证等场景。

plum99的博客 223

30个Python实用库,助力你的编程之旅

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。希望这些库能够为你的编程之旅带来便利和启发。Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

Python栈_基的博客 2万+

安卓无障碍服务保活实战:如何用AccessibilityService实现后台常驻(附完整代码)

本文深入解析如何利用Android无障碍服务(AccessibilityService)实现后台服务保活,涵盖多版本系统适配、前台服务集成、开机自启机制等关键技术。通过详细的Kotlin代码示例和合规性指导,帮助开发者构建稳定可靠的后台服务解决方案,同时避免因滥用无障碍服务导致的应用下架风险。

milk5的博客 1077

SAP ABAP干货:用REUSE_ALV_GRID_DISPLAY_LVC实现ALV多屏幕独立布局(含handle参数详解)

本文详细解析了SAP ABAP中如何使用REUSE_ALV_GRID_DISPLAY_LVC函数实现ALV多屏幕独立布局,重点介绍了handle参数的技术原理和实际应用。通过变式标识符和LTDX表存储机制,开发者可以确保不同ALV报表屏幕的布局设置互不干扰,提升复杂报表场景下的用户体验。

weixin_29268267的博客 312

选出相似的文本按照相似度排序difflib.get_close_matches

选出相似的文本按照相似度排序 difflib.get_close_matches

liujingwei8610的专栏 1264

Midas Civil实战避坑指南:从建模报错到施工阶段分析

本文详细解析了Midas Civil在桥梁建模与施工阶段分析中的实战避坑技巧,涵盖从基础建模到高级边界条件设置的全流程。针对截面定义、节点创建、施工荷载区分等常见问题提供专业解决方案,帮助工程师避免计算误差,提升结构分析效率。特别强调施工阶段荷载与恒荷载的正确处理,以及弹性连接的合理应用。

weixin_30319153的博客 351

推荐一波冷门但好用的 Python 库

Difflib是一个用于比较数据集,尤其是字符串的模块。例如,可以比较两个字符串并根据它们的相似性返回数据。sched是与time模块一起使用的有用工具,用于使用schedular实例安排事件(以函数的形式)。例如,enterabs()将一个事件添加到调度程序的内部队列中,该队列将在调用run()函数时运行。binaascii可在二进制和ASCII之间转换以编码和解码数据。b2a_base64是binaascii模块中的一种方法,它将base64数据转换为二进制数据。tty模块需要配合使用termios。

m0_59236602的博客 1798

一文掌握DrissionPage的详细使用

是一个基于 Python 的网页自动化工具,主要用于网页数据的抓取、自动化操作和测试。它结合了 Selenium 和 Requests 的优点,提供了更简洁、高效的 API,适用于各种网页自动化任务。DrissionPage 是一个功能强大且易于使用的网页自动化工具,适用于各种网页自动化任务。希望本文的 DrissionPage 的基本使用方法和一些高级功能能够帮助到你。

数据知道的博客 1万+

51单片机+DS18B20+数码管显示+超温提示+Proteus仿真

51单片机+DS18B20+数码管显示+超温提示+Proteus仿真 Proteus仿真 实例代码 #include <reg52.h> #define uchar unsigned char #define uint unsigned int sbit we1 = P3^0; sbit we2 = P3^1; sbit we3 = P3^2; sbit we4 = P3^3; sbit DS = P1^0; sbit D1 = P3^6; sbit D2 = P3^7; uch

perseverance51博客 1540

冷门好用的 Python 库推荐一波

Python 标准库有超过 200 个模块,程序员可以在他们的程序中导入和使用。虽然普通程序员对其中许多模块都有一些经验,但很可能有一些好用的模块他们仍然没有注意到。我发现其中许多模块都包含了在各个领域都非常有用的函数。比较数据集、协作其他函数以及音频处理等都可以仅使用 Python 就可以自动完成。因此,我编制了一份您可能不知道的 Python 模块的候选清单,并对这几个模块进行了适当的解释,以便您在将来理解和使用它们。所有这些模块都有不同的函数和类。

python1234_的博客 1055

【VoxCPM2】在Windows上从零搭建VoxCPM2 语音生成和语音克隆AI算法

建议你了解清楚VoxCPM2,再来考虑是否需要自己在本地搭建。

AnChenliang_1002的博客 760

冷门但好用的Python库推荐一波

Difflib是一个用于比较数据集,尤其是字符串的模块。例如,可以比较两个字符串并根据它们的相似性返回数据。sched是与time模块一起使用的有用工具,用于使用schedular实例安排事件(以函数的形式)。例如,enterabs()将一个事件添加到调度程序的内部队列中,该队列将在调用run()函数时运行。binaascii可在二进制和ASCII之间转换以编码和解码数据。b2a_base64是binaascii模块中的一种方法,它将base64数据转换为二进制数据。tty模块需要配合使用termios。

Trb401012的博客 778

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【Python标准库】冷门但好用的 Python 库推荐一波

Python 标准库有超过 200 个模块,程序员可以在他们的程序中导入和使用。虽然普通程序员对其中许多模块都有一些经验,但很可能有一些好用的模块他们仍然没有注意到。

Python966的博客 213

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

马上2025年,看7个冷门但实用的Python库,让你效率飞升!

(欢迎关注我的视频号-AI生成的大橘猫故事)????我的小册 45章教程:(小白零基础用Python量化股票分析小册) ,原价299,限时特价2杯咖啡,满100人涨10元。大家好,我是菜哥!作为一个在Python圈子里摸爬滚打多年的程序员兼自媒体老炮儿,今天我想跟大家聊聊7个你可能没听过,但绝对能让你眼前一亮的Python库!它们都属于“小众神器”,不像NumPy、Pandas这些“大佬”出场率那么高,...

cainiao_python的博客 1275

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

【冷门但是好用】值得推荐的Python库

Python 标准库有超过 200 个模块,程序员可以在他们的程序中导入和使用。虽然普通程序员对其中许多模块都有一些经验,但很可能有一些好用的模块他们仍然没有注意到。

weixin_69333592的博客 302

很冷门,但非常实用的 Python 库

Python是一种很棒的编程语言。事实上,它还是世界上发展最快的编程语言之一。它一次又一次证明了它在数据科学职位中的实用性。整个Python及其库的生态系统使其成为全世界用户(初学者和高级)的合适选择。 在本文中,我们将介绍一些用于数据科学方面的Python库,它们并不像pandas、scikit-learn 和 matplotlib那么知名,但一样非常实用的库。 1、Wget...

Python学习Q群696455390 213

一些冷门但却非常好用的Python数据科学库

▼更多精彩推荐,请关注我们▼本文转自公众号恋习PythonPython 是一个很棒的语言。它是世界上发展最快的编程语言之一。它一次又一次地证明了在开发人员职位中和跨行业的数据科学...

weixin_38754337的博客 151
上一篇: 稚晖君被曝离职华为!两年前加入华为天才少年计划,下一步创业方向是机器人...
下一篇: 可兼职可副业:海外Dǒu 音搬运视频,一周赚一部苹果14,1天1小时!
菜鸟学Python
博客等级 码龄9年 8089粉丝 571原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值