目錄
1. difflib
2. sched
3. binaascii
4. tty
5. weakref
回顧
要點
首頁 後端開發 Python教學 你可能不知道的五個實用的 Python 模組

你可能不知道的五個實用的 Python 模組

May 14, 2023 pm 05:01 PM
python 程式設計語言

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

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是函數將要查看的目標單字。
  • 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()​ 时,调度程序中的事件/条目会按照顺序被调用。在安排完事件后,此函数通常出现在程序的最后。
  • ​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()​​。

回顧

  • Difflib 是用來比較資料集,特別是字串的模組。例如,SequenceMatcher 可以比較兩個字串並根據它們的相似性傳回資料。
  • sched 是與 time 模組一起使用的有用工具,用於使用 schedular 實例安排事件(以函數的形式)。例如,enterabs() 將一個事件加入調度程式的內部佇列中,該佇列將在呼叫 run() 函數時執行。

#binaascii可在二進位和 ASCII 之間轉換以編碼和解碼資料。 b2a_base64  #binaascii #模組中的一種方法,它將base64 資料轉換為二進位資料。

#tty 模組需要搭配使用 #termios #模組,並處理tty 設備。它僅適用於 Unix。

weakref 用於弱引用。它的函數可以傳回物件的弱引用,查找物件的弱引用數量等。其中非常使用的函數之一是 getweakrefs(),它接受一個物件並傳回一個該物件包含的所有弱引用的陣列。

要點

這些函數中的每一個都有其各自的用途,每一個都有不同程度的有用性。了解盡可能多的 Python 函數和模組非常重要,以便保持穩定的工具庫,您可以在編寫程式碼時快速使用。

無論您的程式設計專業知識水平如何,您都應該不斷學習。多投入一點時間可以為您帶來更多價值,並為您節省更多未來時間。

以上是你可能不知道的五個實用的 Python 模組的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1319
25
PHP教程
1269
29
C# 教程
1248
24
PHP和Python:解釋了不同的範例 PHP和Python:解釋了不同的範例 Apr 18, 2025 am 12:26 AM

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

在PHP和Python之間進行選擇:指南 在PHP和Python之間進行選擇:指南 Apr 18, 2025 am 12:24 AM

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

sublime怎麼運行代碼python sublime怎麼運行代碼python Apr 16, 2025 am 08:48 AM

在 Sublime Text 中運行 Python 代碼,需先安裝 Python 插件,再創建 .py 文件並編寫代碼,最後按 Ctrl B 運行代碼,輸出會在控制台中顯示。

PHP和Python:深入了解他們的歷史 PHP和Python:深入了解他們的歷史 Apr 18, 2025 am 12:25 AM

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

為什麼要使用PHP?解釋的優點和好處 為什麼要使用PHP?解釋的優點和好處 Apr 16, 2025 am 12:16 AM

PHP的核心優勢包括易於學習、強大的web開發支持、豐富的庫和框架、高性能和可擴展性、跨平台兼容性以及成本效益高。 1)易於學習和使用,適合初學者;2)與web服務器集成好,支持多種數據庫;3)擁有如Laravel等強大框架;4)通過優化可實現高性能;5)支持多種操作系統;6)開源,降低開發成本。

Python vs. JavaScript:學習曲線和易用性 Python vs. JavaScript:學習曲線和易用性 Apr 16, 2025 am 12:12 AM

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

Golang vs. Python:性能和可伸縮性 Golang vs. Python:性能和可伸縮性 Apr 19, 2025 am 12:18 AM

Golang在性能和可擴展性方面優於Python。 1)Golang的編譯型特性和高效並發模型使其在高並發場景下表現出色。 2)Python作為解釋型語言,執行速度較慢,但通過工具如Cython可優化性能。

MySQL與其他編程語言:一種比較 MySQL與其他編程語言:一種比較 Apr 19, 2025 am 12:22 AM

MySQL与其他编程语言相比,主要用于存储和管理数据,而其他语言如Python、Java、C 则用于逻辑处理和应用开发。MySQL以其高性能、可扩展性和跨平台支持著称,适合数据管理需求,而其他语言在各自领域如数据分析、企业应用和系统编程中各有优势。

See all articles