Maison > Article > développement back-end > Connaissez-vous ces cinq modules Python utiles mais peu connus ?
La bibliothèque standard Python contient plus de 200 modules que les programmeurs peuvent importer et utiliser dans leurs programmes. Bien que le programmeur moyen ait une certaine expérience avec bon nombre de ces modules, il est probable qu'il en connaisse encore quelques-uns utiles.
J'ai trouvé que beaucoup de ces modules contiennent des fonctions très utiles dans divers domaines. La comparaison d'ensembles de données, la collaboration avec d'autres fonctions et le traitement audio peuvent tous être automatisés en utilisant uniquement Python.
J'ai donc compilé une courte liste de modules Python que vous ne connaissez peut-être pas et j'ai donné une explication appropriée à ces quelques modules afin que vous puissiez les comprendre et les utiliser à l'avenir.
Tous ces modules ont des fonctions et des classes différentes. Cet article contient plusieurs fonctions et classes moins connues, donc même si vous avez entendu parler de ces modules, vous ne connaissez peut-être pas certains de leurs aspects et utilisations.
difflib est un module Python axé sur la comparaison d'ensembles de données (en particulier de chaînes). Pour avoir une idée concrète de quelques choses que vous pouvez faire avec ce module, examinons certaines de ses fonctions les plus courantes.
SequenceMatcher est une fonction qui compare deux chaînes et renvoie des données en fonction de leur similarité. En utilisant ratio() nous pourrons quantifier cette similarité en termes de ratio/pourcentage.
Syntaxe :
SequenceMatcher(None, string1, string2)
L'exemple simple suivant montre ce que fait cette fonction :
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
Next est get_close_matches, qui renvoie la correspondance la plus proche de la chaîne passée en paramètre.
Syntaxe :
get_close_matches(word, possibilities, result_limit, min_similarity)
Voici une explication de ces paramètres potentiellement déroutants :
Voici un exemple de son utilisation :
from difflib import get_close_matches word = 'Tandrew' possibilities = ['Andrew', 'Teresa', 'Kairu', 'Janderson', 'Drew'] print(get_close_matches(word, possibilities)) # Output: ['Andrew']
En plus de cela, il existe quelques autres méthodes et classes appartenant à Difflib que vous pouvez consulter : unified_diff, Differ et diff_bytes
sched. est un module utile centré sur la planification d'événements pour le travail multiplateforme, contrairement à des outils tels que le Planificateur de tâches sous Windows. La plupart du temps, lorsque vous utiliserez ce module, vous utiliserez la classe schedular.
Le module de temps le plus courant est généralement utilisé avec sched car ils traitent tous deux des concepts de temps et de planification.
Créez une instance planifiée :
schedular_name = sched.schedular(time.time, time.sleep)
Différentes méthodes peuvent être appelées à partir de cette instance.
En voici un Exemple d'utilisation de ces deux fonctions ensemble :
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
Il existe également plusieurs fonctions qui étendent l'utilisation du module sched : Cancel(), Enter() et Empty().
binaascii est un module de conversion entre binaire et ASCII.
b2a_base64 est une méthode du module binaascii qui convertit les données base64 en données binaires. Voici un exemple de cette approche :
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'
Ce morceau de code devrait être explicite. En termes simples, cela implique l'encodage, la conversion en base64 et la reconversion en binaire à l'aide de la méthode b2a_base64.
Voici quelques autres fonctions appartenant au module binaascii : a2b_qp(), b2a_qp() et a2b_uu().
tty est un module contenant plusieurs fonctions utilitaires qui peuvent être utilisées pour gérer les appareils tty. Voici ses deux fonctions :
Ce module n'est disponible que sous Unix en raison de la nécessité d'utiliser le module termios, par exemple en spécifiant le deuxième paramètre (when=termios.TCSAFLUSH) dans les deux fonctions ci-dessus.
weakref est un module permettant de créer des références faibles à des objets en Python.
Une référence faible est une référence qui ne protège pas un objet donné contre la collecte par le mécanisme de garbage collection.
Voici deux fonctions liées à ce module :
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()。
binaascii 可在二进制和 ASCII 之间转换以编码和解码数据。b2a_base64 是 binaascii 模块中的一种方法,它将 base64 数据转换为二进制数据。
tty 模块需要配合使用 termios 模块,并处理 tty 设备。它仅适用于 Unix。
weakref 用于弱引用。它的函数可以返回对象的弱引用,查找对象的弱引用数量等。其中非常使用的函数之一是 getweakrefs(),它接受一个对象并返回一个该对象包含的所有弱引用的数组。
这些函数中的每一个都有其各自的用途,每一个都有不同程度的有用性。了解尽可能多的 Python 函数和模块非常重要,以便保持稳定的工具库,您可以在编写代码时快速使用。
无论您的编程专业知识水平如何,您都应该不断学习。多投入一点时间可以为您带来更多价值,并为您节省更多未来时间。
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!