>  기사  >  백엔드 개발  >  당신이 모를 수도 있는 다섯 가지 유용한 Python 모듈

당신이 모를 수도 있는 다섯 가지 유용한 Python 모듈

WBOY
WBOY앞으로
2023-05-14 17:01:061635검색

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

Python 표준 라이브러리에는 프로그래머가 프로그램에서 가져와 사용할 수 있는 200개 이상의 모듈이 있습니다. 일반 프로그래머는 이러한 모듈 중 다수에 대해 어느 정도 경험을 갖고 있지만 아직 인식하지 못하는 몇 가지 유용한 모듈이 있을 가능성이 높습니다.

이러한 모듈 중 상당수가 다양한 분야에서 매우 유용한 기능을 포함하고 있다는 것을 알았습니다. 데이터 세트 비교, 다른 기능과의 협업 및 오디오 처리는 모두 Python을 사용하여 자동화할 수 있습니다.

그래서 여러분이 모르실 수도 있는 Python 모듈의 후보 목록을 정리하고, 나중에 여러분이 이해하고 사용할 수 있도록 몇 가지 모듈에 대한 적절한 설명을 제공했습니다.

이 모든 모듈에는 서로 다른 기능과 클래스가 있습니다. 잘 알려지지 않은 여러 함수와 클래스를 포함시켰으므로 이러한 모듈에 대해 들어본 적이 있더라도 해당 모듈의 일부 측면과 용도를 알지 못할 수도 있습니다.

1.difflib

​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​데이터 세트 비교에 초점을 맞춘 도구입니다. (특히 문자열) Python 모듈. 이 모듈로 수행할 수 있는 몇 가지 작업에 대한 구체적인 아이디어를 얻기 위해 가장 일반적인 기능 중 일부를 살펴보겠습니다.
  • SequenceMatcher

​SequenceMatcher​

는 두 문자열을 비교하는 방법입니다. 유사성 데이터를 반환하는 함수입니다. 🎜 🎜​​ratio()​​, 비율/백분율을 기준으로 수량화할 수 있습니다. Strong> 유사성. 🎜🎜구문: ​​🎜
from difflib import get_close_matches

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

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

🎜다음의 간단한 예는 이 함수의 기능을 보여줍니다. 🎜
schedular_name = sched.schedular(time.time, time.sleep)

🎜get_close_matches🎜🎜다음은 🎜 🎜​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 🎜다음은 혼동될 수 있는 매개변수에 대한 설명입니다: 🎜
  • ​가능성​​🎜 🎜은 함수가 가장 가까운 일치 항목을 찾아 포함하는 배열입니다. 🎜
  • ​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()​​。

    Review

    • Difflib 은 데이터 세트, 특히 문자열을 비교하기 위한 모듈입니다. 예를 들어 SequenceMatcher 는 두 문자열을 비교하고 유사성을 기반으로 데이터를 반환할 수 있습니다.
    • Difflib 是一个用于比较数据集,尤其是字符串的模块。例如,SequenceMatcher 可以比较两个字符串并根据它们的相似性返回数据。
  • sched 是与 time 模块一起使用的有用工具,用于使用 schedular 实例安排事件(以函数的形式)。例如,enterabs() 将一个事件添加到调度程序的内部队列中,该队列将在调用 run() 函数时运行。
  • ​binaascii​ 可在二进制和 ASCII 之间转换以编码和解码数据。​​b2a_base64​  ​binaascii​ 模块中的一种方法,它将 base64 数据转换为二进制数据。

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

    ​weakref​ 用于弱引用。它的函数可以返回对象的弱引用,查找对象的弱引用数量等。其中非常使用的函数之一是 ​getweakrefs()​sched time run() 함수.

    ​binaascii​ 인코딩 및 디코딩을 위해 바이너리와 ASCII 간 변환 데이터. ​​b2a_base64​ ​binaascii​ base64 데이터를 바이너리 데이터로 변환하는 모듈의 메서드입니다.

    ​tty​ 모듈은 ​termios​ 모듈이며 tty 장치를 처리합니다. 유닉스에서만 작동합니다.

    ​weakref​ 은 약한 참조에 사용됩니다. 해당 함수는 객체의 약한 참조를 반환하고 객체의 약한 참조 수를 찾는 등의 작업을 수행할 수 있습니다. 가장 일반적으로 사용되는 함수 중 하나는 ​getweakrefs()​​, 객체를 받아들이고 An을 반환합니다. 객체에 포함된 모든 약한 참조의 배열입니다.

    Key Points🎜🎜각각의 기능에는 고유한 목적이 있으며 유용성의 정도도 다릅니다. 코드를 작성할 때 빠르게 사용할 수 있는 안정적인 도구 라이브러리를 유지하려면 가능한 한 많은 Python 함수와 모듈을 아는 것이 중요합니다. 🎜🎜프로그래밍 전문 지식 수준에 관계없이 항상 학습해야 합니다. 조금 더 시간을 투자하면 더 많은 가치를 얻을 수 있고 미래에는 더 많은 시간을 절약할 수 있습니다. 🎜

    위 내용은 당신이 모를 수도 있는 다섯 가지 유용한 Python 모듈의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 51cto.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제