Heim  >  Artikel  >  Backend-Entwicklung  >  Kennen Sie diese fünf nützlichen, aber wenig bekannten Python-Module?

Kennen Sie diese fünf nützlichen, aber wenig bekannten Python-Module?

王林
王林nach vorne
2023-04-13 10:01:051132Durchsuche

Kennen Sie diese fünf nützlichen, aber wenig bekannten Python-Module?

Text

Die Python-Standardbibliothek verfügt über über 200 Module, die Programmierer importieren und in ihren Programmen verwenden können. Während der durchschnittliche Programmierer mit vielen dieser Module über gewisse Erfahrung verfügt, ist es wahrscheinlich, dass er einige nützliche Module noch nicht kennt.

Ich habe festgestellt, dass viele dieser Module Funktionen enthalten, die in verschiedenen Bereichen sehr nützlich sind. Der Vergleich von Datensätzen, die Zusammenarbeit mit anderen Funktionen und die Audioverarbeitung können alle mit nur Python automatisiert werden.

Deshalb habe ich eine Auswahlliste von Python-Modulen zusammengestellt, die Sie vielleicht noch nicht kennen, und diese wenigen Module richtig erklärt, damit Sie sie in Zukunft verstehen und verwenden können.

Alle diese Module haben unterschiedliche Funktionen und Klassen. Dieser Artikel enthält mehrere weniger bekannte Funktionen und Klassen. Selbst wenn Sie von diesen Modulen gehört haben, kennen Sie möglicherweise einige ihrer Aspekte und Verwendungszwecke nicht.

1. difflib

difflib ist ein Python-Modul, das sich auf den Vergleich von Datensätzen (insbesondere Strings) konzentriert. Um eine konkrete Vorstellung davon zu bekommen, was Sie mit diesem Modul tun können, schauen wir uns einige seiner häufigsten Funktionen an.

SequenceMatcher

SequenceMatcher ist eine Funktion, die zwei Zeichenfolgen vergleicht und Daten basierend auf ihrer Ähnlichkeit zurückgibt. Durch die Verwendung von ratio() können wir diese Ähnlichkeit in Bezug auf Verhältnis/Prozentsatz quantifizieren.

Syntax:

SequenceMatcher(None, string1, string2)

Das folgende einfache Beispiel zeigt, was diese Funktion macht:

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

Als nächstes kommt get_close_matches, das die nächste Übereinstimmung mit der als Parameter übergebenen Zeichenfolge zurückgibt.

Syntax:

get_close_matches(word, possibilities, result_limit, min_similarity)

Hier ist eine Erklärung dieser möglicherweise verwirrenden Parameter:

  • Wort ist das Zielwort, das von der Funktion untersucht wird.
  • Möglichkeiten ist ein Array, das die Übereinstimmungen enthält, nach denen die Funktion sucht und die nächste Übereinstimmung findet.
  • result_limit ist die Grenze für die Anzahl der zurückgegebenen Ergebnisse (optional).
  • min_similarity ist die minimale Ähnlichkeit, die zwei Wörter haben müssen, um von der Funktion als Rückgabewert betrachtet zu werden (optional).

Hier ist ein Beispiel für die Verwendung:

from difflib import get_close_matches
word = 'Tandrew'
possibilities = ['Andrew', 'Teresa', 'Kairu', 'Janderson', 'Drew']
print(get_close_matches(word, possibilities))
# Output: ['Andrew']

Darüber hinaus gibt es einige andere Methoden und Klassen, die zu Difflib gehören, die Sie ausprobieren können: unified_diff, Differ und diff_bytes

2 sched ist ein nützliches Modul, das sich im Gegensatz zu Tools wie dem Taskplaner unter Windows auf die Ereignisplanung für plattformübergreifendes Arbeiten konzentriert. Wenn Sie dieses Modul verwenden, verwenden Sie in den meisten Fällen die Klasse „Schedular“.

Das gebräuchlichere Zeitmodul wird normalerweise zusammen mit sched verwendet, da beide sich mit den Konzepten von Zeit und Terminplanung befassen.

Erstellen Sie eine Zeitplaninstanz:

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

Von dieser Instanz aus können verschiedene Methoden aufgerufen werden.

Wenn run() aufgerufen wird, werden die Ereignisse/Einträge im Scheduler der Reihe nach aufgerufen. Diese Funktion erscheint normalerweise am Ende der Sendung, nachdem die Veranstaltung geplant wurde. Durchsuchen Sie außerdem das öffentliche Linux-Konto und antworten Sie im Hintergrund auf „Git Books“, um ein Überraschungsgeschenkpaket zu erhalten.
  • enterabs() ist eine Funktion, die im Wesentlichen Ereignisse zur internen Warteschlange des Planers hinzufügt. Es empfängt mehrere Parameter in der folgenden Reihenfolge:
Zeitpunkt der Ereignisausführung
  • Aktivitätspriorität
  • Ereignis selbst (eine Funktion)
  • Parameter der Ereignisfunktion
  • Schlüsselwort-Parameterwörterbuch des Ereignisses
  • Hier ist einer Beispiel für die gemeinsame Verwendung dieser beiden Funktionen:

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

Es ​​gibt auch mehrere Funktionen, die die Verwendung des Sched-Moduls erweitern: cancel(), enter() und empty().

3. binaascii

binaascii ist ein Modul zur Konvertierung zwischen Binär und ASCII.

b2a_base64 ist eine Methode im Binaascii-Modul, die Base64-Daten in Binärdaten konvertiert. Hier ist ein Beispiel für diesen Ansatz:

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'

Dieser Code sollte selbsterklärend sein. Einfach ausgedrückt umfasst es die Kodierung, die Konvertierung in Base64 und die Rückkonvertierung in Binärform mithilfe der Methode b2a_base64.

Hier sind einige weitere Funktionen, die zum binaascii-Modul gehören: a2b_qp(), b2a_qp() und a2b_uu().

4. tty

tty ist ein Modul, das mehrere Hilfsfunktionen enthält, die für den Umgang mit TTY-Geräten verwendet werden können. Hier sind seine beiden Funktionen:

setraw() ändert den Modus des Dateideskriptors in seinem Argument (fd) auf raw.
  • setcbreak() ändert den Modus des Dateideskriptors in seinem Argument (fd) in cbreak.
  • Dieses Modul ist nur unter Unix verfügbar, da das Termios-Modul verwendet werden muss, z. B. die Angabe des zweiten Parameters (when=termios.TCSAFLUSH) in den beiden oben genannten Funktionen.

5. schwachref

weakref ist ein Modul zum Erstellen schwacher Referenzen auf Objekte in Python.

Eine schwache Referenz ist eine Referenz, die ein bestimmtes Objekt nicht davor schützt, vom Garbage-Collection-Mechanismus erfasst zu werden.

Die folgenden zwei Funktionen beziehen sich auf dieses Modul:

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

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

Das obige ist der detaillierte Inhalt vonKennen Sie diese fünf nützlichen, aber wenig bekannten Python-Module?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:51cto.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen