>  기사  >  백엔드 개발  >  유용하지만 잘 알려지지 않은 다섯 가지 Python 모듈을 알고 계십니까?

유용하지만 잘 알려지지 않은 다섯 가지 Python 모듈을 알고 계십니까?

王林
王林앞으로
2023-04-13 10:01:051132검색

유용하지만 잘 알려지지 않은 다섯 가지 Python 모듈을 알고 계십니까?

Text

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는 함수가 살펴볼 대상 단어입니다.
  • 가능성은 함수가 찾아 가장 가까운 일치 항목을 찾는 일치 항목이 포함된 배열입니다.
  • 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

sched

sched. Windows의 작업 스케줄러와 같은 도구와 달리 크로스 플랫폼 작업을 위한 이벤트 예약을 중심으로 하는 유용한 모듈입니다. 이 모듈을 사용할 때 대부분의 경우 스케줄러 클래스를 사용하게 됩니다.

보다 일반적인 시간 모듈은 일반적으로 sched와 함께 사용됩니다. 둘 다 시간과 일정의 개념을 다루기 때문입니다.

예약 인스턴스 만들기:

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

이 인스턴스에서 다양한 메서드를 호출할 수 있습니다.

  • run()이 호출되면 스케줄러의 이벤트/항목이 순서대로 호출됩니다. 이 기능은 일반적으로 이벤트 일정이 잡힌 후 프로그램이 끝날 때 나타납니다. 또한, 공개 계정인 리눅스를 검색하고 백그라운드에서 "git books"라고 답하면 깜짝 선물 패키지를 얻을 수 있다.
  • 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는 base64 데이터를 바이너리 데이터로 변환하는 binaascii 모듈의 메서드입니다. 다음은 이 접근 방식의 예입니다.

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로 변경합니다.

위 두 함수에서 두 번째 매개변수(when=termios.TCSAFLUSH)를 지정하는 등 termios 모듈을 사용해야 하기 때문에 이 모듈은 Unix에서만 사용할 수 있습니다.

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

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

위 내용은 유용하지만 잘 알려지지 않은 다섯 가지 Python 모듈을 알고 계십니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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