当前位置:

首页 > 编程开发 > 你可能不知道的五个实用的 Python 模块

你可能不知道的五个实用的 Python 模块

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

本文目录

    你可能不知道的五个实用的 Python 模块

    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': []
    # 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 函数和模块非常重要,以便保持稳定的工具库,您可以在编写代码时快速使用。

    无论您的编程专业知识水平如何,您都应该不断学习。多投入一点时间可以为您带来更多价值,并为您节省更多未来时间。

    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    编程开发 Python
    相关文章 更多
    python删除一个列表里的重复元素的方法与代码示例
    python删除一个列表里的重复元素的方法与代码示例

    学习如何使用Python高效删除列表中的重复元素。本文提供5种常见方法的代码示例,涵盖保持顺序与不保持顺序的场景,适合初学者和进阶开发者参考。

    Python写接口的步骤及完整代码示例
    Python写接口的步骤及完整代码示例

    详细讲解使用Python编写Web接口的核心步骤与完整代码示例,涵盖环境准备、路由定义、数据校验、服务启动及调试测试方法。

    codex怎么读取word文档及docx文件操作教程
    codex怎么读取word文档及docx文件操作教程

    介绍如何利用编程工具读取和解析Word文档(docx格式),涵盖基础文本提取代码示例、结构化数据处理逻辑,以及处理复杂排版时的技术局限与替代方案。

    怎么在Python中调用C语言代码提升性能
    怎么在Python中调用C语言代码提升性能

    详细讲解在Python中调用C语言代码提升性能的完整实践指南,包含原理分析、编译步骤、ctypes与CFFI具体实现、性能对比及常见陷阱。

    Python与C语言的性能差异及底层原理
    Python与C语言的性能差异及底层原理

    深入解析Python与C语言在执行效率上的数量级差异,从编译机制、变量内存布局、动态类型推断到GIL锁,系统阐明底层核心原理。

    Python和C语言哪个更适合编程入门
    Python和C语言哪个更适合编程入门

    客观对比Python与C语言在心智负担、底层机制与学习反馈上的核心差异,提供清晰有据的选择标准与切实的入门学习路径。

    selenium上传文件教程本地文件路径设置方法
    selenium上传文件教程本地文件路径设置方法

    深入解析Selenium处理文件上传的技术细节,涵盖标准HTML控件的路径直接注入法与非标准控件的系统级模拟方案,提供Windows与Linux环境下的路径设置最佳实践及常见异常排查。

    大数据开发语言选型:Java对比Scala与Python的优缺点及适用场景
    大数据开发语言选型:Java对比Scala与Python的优缺点及适用场景

    针对大数据工程场景,系统对比Java、Scala与Python在执行性能、生态结合、开发效率和维护成本上的核心差异,给出清晰的架构选型依据与落地方案。

    langgraph python guide中文入门教程详解
    langgraph python guide中文入门教程详解

    本篇LangGraph Python中文入门教程详解,系统梳理StateGraph状态机定义、节点编写、边与条件路由、检查点持久化(MemorySaver)等核心机制,提供从环境安装到完整循环智能体构建的代码示例与实操指导。

    typescript是什么语言?一文看懂其定义与用途
    typescript是什么语言?一文看懂其定义与用途

    深入浅出解析TypeScript是什么语言。本文详细介绍TypeScript的语言定义、超集架构、核心运行原理、与JavaScript的核心对比以及四类典型工业级应用场景,帮助读者全面看懂TS的价值与用途。

    查看更多
    精品专题 更多
    装机必备
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows
    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程
    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    Mac软件 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    Aperty macOS版
    Aperty macOS版
    macOS

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    WINDOWS 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    PixTV 网页版
    PixTV 网页版
    Windows

    PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。