• 技术文章 >后端开发 >Python教程

    常见的 Python 库有哪些?

    王林王林2023-04-27 16:40:07转载41

    1. difflib

    五个常用的 Python 库

    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() 时,调度程序中的事件/条目会按照顺序被调用。在安排完事件后,此函数通常出现在程序的最后。另外,搜索公众号Linux就该这样学后台回复“git书籍”,获取一份惊喜礼包。

    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 中创建对对象的弱引用的模块。

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

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

    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()。

    以上就是常见的 Python 库有哪些?的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:51CTO.COM,如有侵犯,请联系admin@php.cn删除
    专题推荐:Python 数据集 数组
    上一篇:Python自动化测试面试常见问题及答案 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • 如何使用fdopen实现对Python进程产生的文件进行权限最小化配置• Python之ThreadPoolExecutor线程池问题怎么解决• Python怎么使用树状图实现可视化聚类• 怎么使用Python对接OpenAi API实现智能QQ机器人• python中的argparse怎么使用
    1/1

    PHP中文网