python標準庫和用法,python 標準庫

本文目錄一覽:

Python 常用的標準庫以及第三方庫有哪些

標準庫Python擁有一個強大的標準庫。Python語言的核心只包含數字、字元串、列表、字典、文件等常見類型和函數,而由Python標準庫提供了系統管理、網路通信、文本處理、資料庫介面、圖形系統、XML處理等額外的功能。Python標準庫的主要功能有:1.文本處理,包含文本格式化、正則表達式匹配、文本差異計算與合併、Unicode支持,二進位數據處理等功能2.文件處理,包含文件操作、創建臨時文件、文件壓縮與歸檔、操作配置文件等功能3.操作系統功能,包含線程與進程支持、IO復用、日期與時間處理、調用系統函數、日誌(logging)等功能4.網路通信,包含網路套接字,SSL加密通信、非同步網路通信等功能5.網路協議,支持HTTP,FTP,SMTP,POP,IMAP,NNTP,XMLRPC等多種網路協議,並提供了編寫網路伺服器的框架6.W3C格式支持,包含HTML,SGML,XML的處理。7.其它功能,包括國際化支持、數學運算、HASH、Tkinter等Python社區提供了大量的第三方模塊,使用方式與標準庫類似。它們的功能覆蓋科學計算、Web開發、資料庫介面、圖形系統多個領域。第三方模塊可以使用Python或者C語言編寫。SWIG,SIP常用於將C語言編寫的程序庫轉化為Python模塊。BoostC++Libraries包含了一組函式庫,Boost.Python,使得以Python或C++編寫的程式能互相調用。Python常被用做其他語言與工具之間的「膠水」語言。著名第三方庫1.Web框架Django:開源Web開發框架,它鼓勵快速開發,並遵循MVC設計,開發周期短。ActiveGrid:企業級的Web2.0解決方案。Karrigell:簡單的Web框架,自身包含了Web服務,py腳本引擎和純python的資料庫PyDBLite。Tornado:一個輕量級的Web框架,內置非阻塞式伺服器,而且速度相當快webpy:一個小巧靈活的Web框架,雖然簡單但是功能強大。CherryPy:基於Python的Web應用程序開發框架。Pylons:基於Python的一個極其高效和可靠的Web開發框架。Zope:開源的Web應用伺服器。TurboGears:基於Python的MVC風格的Web應用程序框架。Twisted:流行的網路編程庫,大型Web框架。Quixote:Web開發框架。2.科學計算Matplotlib:用Python實現的類matlab的第三方庫,用以繪製一些高質量的數學二維圖形。SciPy:基於Python的matlab實現,旨在實現matlab的所有功能。NumPy:基於Python的科學計算第三方庫,提供了矩陣,線性代數,傅立葉變換等等的解決方案。3.GUIPyGtk:基於Python的GUI程序開發GTK+庫。PyQt:用於Python的QT開發庫。WxPython:Python下的GUI編程框架,與MFC的架構相似。4.其它BeautifulSoup:基於Python的HTML/XML解析器,簡單易用。PIL:基於Python的圖像處理庫,功能強大,對圖形文件的格式支持廣泛。PyGame:基於Python的多媒體開發和遊戲軟體開發模塊。Py2exe:將python腳本轉換為windows上可以獨立運行的可執行程序。參考自維基百科

python哪些標準庫

標準庫比較多 功能也不同:

標準庫

sys

系統相關的參數和函數。 sys 庫一般用來訪問和修改系統相關信息,比如查看 python 版本、系統環境變數、模塊信息和 python 解釋器相關信息等等。

os

操作系統介面模塊。這個庫提供了訪問操作系統相關依賴的方式,比如輸入輸出操作、讀寫操作、操作系統異常錯誤信息、進程線程管理、文件管理、調度程序等等。

re

正則表達式操作。這個庫是我喜歡並且經常會用到的庫,在對大量字元串進行處理的時候用正則表達式是最快速有效的方式,但是正則表達式的學習曲線較高,有興趣的朋友可以訪問這個網站學習。

math

數學函數庫。 math 庫提供了對 C 語言標準定義的數學函數訪問,比如數論(Number-theoretic)的各種表示方法、冪和對數函數(Power and logarithmic functions)、三角函數(Trigonometric functions)、常量圓周率(π)和自然常數(e)等等。

random

生成偽隨機數。

偽隨機數與隨機數(真隨機數)不同的是執行環境,隨機數是真實世界中通過物理過程實踐得出結論,而偽隨機數是通過計算機的特定演算法生成的數,所以這個過程是可預測的、有規律的,只是循環周期較長,並不能與現實場景相切合。

random庫提供生成隨機數,可以模擬現實世界中隨機取數、隨機抽獎等等。

logging

日誌記錄工具。這個庫提供了對應用程序和庫函數的日誌記錄,日常開發中我們經常需要通過日誌列印出當前程序的運行狀態,實時查看可能出現的堆棧異常和錯誤信息。

json

Json 編碼和解碼器。 json 庫提供了對 json 數據的支持,日常開發中我們做前後端分離需要對傳輸數據 json 進行序列化和反序列化操作,以保證對數據的完整性和有效性,而序列化和反序列化其實就是編碼和解碼的過程。

pickle

Python 對象序列化庫。 pickle 庫支持對 python 對象進行序列化和反序列化操作,當我們需要將處理好的對象保存到文件或資料庫中時,就可以將其序列化成二進位數據,從而更好的保存起來。

shelve

Python 對象持久化。簡單的數據存儲方案。

socket

底層網路介面。 socket(套接字) 庫提供了標準的BSD(伯克利套接字) Socket API,可以通過訪問底層操作系統 Socket 的相關介面進行網路通訊。

datetime

基本日期和時間類型庫。該庫提供了各種簡單和複雜的方式處理日期和時間,日常我們會用時間測算時間消耗、複雜度,對存儲的創建時間和修改時間也需要進一步說明,對計時器的描述和控制也需要用到該庫。

hashlib

安全哈希和消息摘要。摘要演算法 其實就是對某些數據進行加密(不可逆的加密演算法),因為被加密的數據無法破解,所以就能防止被篡改。常見的摘要演算法有 MD5、SHA1,一般我們會用 MD5 對用戶口令進行加密,防止盜用後被輕易破解;而 SHA1 與 MD5 類似,但是 SHA1 會產生更長的長度,也更安全,但是演算法的複雜性通常伴隨著存儲空間和時間的消耗。要說比SHA1更長的字元長度,還有 SHA224、SHA256、SHA384 和 SHA512,看名字就能知道。

大家都知道無論演算法生成的字元長度如何都有可能發生碰撞(被破解),這是不可避免的,所以具體場景具體情況而定。

configparser

配置文件解析器。 configparser 庫可以輕鬆定製配置文件,通過解析配置文件的信息我們就可以全局訪問相關配置。

urllib

URL 處理模塊。 urllib 庫集成了處理 URLs(統一資源定位符)的各種模塊:

URL urllib.request URL robots.txt urllib 庫對訪問網路有很好的支持,提供了對數據的訪問和處理、文件的上傳和下載、記錄 cookie 和 session 等等。

itertools

為高效循環而創建迭代器的函數。 itertools 庫也是經常需要用到,當我們要對某些數進行 for-in 時就需要先將其處理成一個可迭代對象,之後我們才能進行遍歷操作。

collections

容器數據類型庫。 collections 庫提供了對所有容器數據類型的支持,包括 dict, list, set 和 tuple。我們可以用此庫對不同數據類型進行操作,常有的函數方法有這些:

namedtuple() 創建命名元組子類的工廠函數 deque 類似列表(list)的容器,實現了在兩端快速添加(append)和彈出(pop) ChainMap 類似字典(dict)的容器類,將多個映射集合到一個視圖裡面 Counter 字典的子類,提供了可哈希對象的計數功能 OrderedDict 字典的子類,保存了他們被添加的順序 defaultdict 字典的子類,提供了一個工廠函數,為字典查詢提供一個默認值 UserDict 封裝了字典對象,簡化了字典子類化 UserList 封裝了列表對象,簡化了列表子類化 UserString 封裝了列表對象,簡化了字元串子類化 functools

高階函數和可調用對象上的操作。該庫主要調用高階函數,是常規函數的一種補充。目前庫中包含以下幾種函數:

cmp_to_key lru_cache total_ordering partial partialmethod reduce singledispatch update_wrapper wraps threading

線程並行庫。 threading 庫支持線程和多線程的操作,針對多線程並發的問題可以給數據加同步鎖,一次只能讓一個線程處理數據,從而避免出現數據讀寫混亂。

在 CPython 解釋器上,因為GIL(全局解釋器鎖)鎖機制的存在的,被設計成線程安全,所以同一時間只能執行一個線程,這就導致了多線程不能發揮出計算機的多核特性。

multiprocessing

進程並行庫。 multiprocessing 庫與 threading 庫很類似,不同的是進程庫可以創建子進程避開 GIL,從而彌補線程庫存在的劣勢和發揮計算機的多核特性。

timeit

測量小代碼片段的執行時間。此庫主要用來計算運行代碼的時間消耗,支持多種方式傳入參數。

atexit

退出處理器。當處理一個函數需要立馬退出時可以使用該庫。

abc

抽象基類。 abc 庫定義抽象基類,以便其他類派生出新類。比如 collections 容器庫中就有此派生出的 collections.abc 類,派生出來的類可以進一步實現。

asyncio

非同步IO庫。 asyncio 庫是一個用 async/await 關鍵字編寫並發的庫,為多個非同步框架提供基礎功能,能夠實現高性能的網路、Web伺服器、資料庫連接和分散式任務隊列等。

copy

淺層和深層複製操作。 copy 庫提供對對象的拷貝,我們都知道要製作對象副本,是無法通過簡單值傳遞創建新變數的方式做到,因為新變數所指向的內存空間依舊是原對象本身,所以對新變數進行任何操作都會改變原對象。那麼, copy 庫就提供了製作對象副本的各種方法,會開闢一個新的內存空間存放副本對象,修改操作不會對原對象有任何干預。

csv

csv(Comma Separated Values)文件讀寫庫。此庫支持以純文本的形式存儲表格數據(數字和文本)。

operator

標準運算符替代函數庫。此庫是將 python 自有的運算符作為有效函數,比如表達式 x+y 可以用函數 operator.add(x, y) 表示;比如表達式 a*b 可以用函數 operator.mul(a, b) 表示,等等。

enum

枚舉庫。 enum 庫支持創建枚舉類來存儲大量同類型的不可變常量,以便其他函數調用。創建出來的枚舉類是可迭代對象,所以可以用 for-in 枚舉出所有常量。

heapq

堆隊列演算法。這個模塊提供了堆隊列演算法的實現,也稱為優先隊列演算法。優先隊列中的每個元素都有各自的優先順序,優先順序最高的元素最先得到服務。所以當我們要求前n最大/最小值的時候就可以用此演算法來實現, heapq 庫中也提供了相應函數實現。

http

HTTP 模塊。 http 模塊是一個包,收集了多個處理超文本傳輸協議的模塊:

urllib.request http 模塊通過 http.HTTPStatus 枚舉定義了HTTP狀態碼 以及相關聯消息。

profile、pstats

性能分析工具。 profile 模塊提供了 profile 和 cProfile 兩種不同實現的性能分析工具,可用來描述程序各個部分的執行時間和頻率,統計後的信息可以通過 pstats 模塊保存並使用。

ssl

TLS/SSL(傳輸安全協議)。此模塊提供對安全協議的支持,通過應用上下文,可將 TLS(傳輸層安全性協議)或其前身 SSL(安全套接層)支持安全協議,能為互聯網通信提供安全和數據完整性保障。一般 HTTPS 協議都支持 TLS/SSL 加密。

unitest

單元測試框架。 unitest 庫常用於單元測試,受到 JUnit 和其他主流測試庫的啟發, unitest 庫的功能和函數與它們有著相似的風格。

uuid

UUID庫。 uuid 庫主要用途是生成隨機字元串,庫中有多個版本的 UUID 對象方法,比如版本 1、3、4 和 5 的 uuid1() 、 uuid3() 、 uuid4() 和 uuid5() 。需要注意的是,如果要生成隨機字元串,可以使用 uuid1() 和 uuid4() ,但是 uuid1() 會存在隱私風險,因為生成的原理裡邊包含用戶訪問計算機的網路地址,而 uuid4() 是通過隨機字元生成。

希望可以幫助到你。

Python 標準庫模塊 – re

re模塊被稱為正則表達式,其作用為,創建一個「規則表達式」,用於驗證和查找符合規則的文本,廣泛用於各種搜索引擎、賬戶密碼的驗證等。

預定義字元:

\d:匹配所有的十進位數字0-9

\D:匹配所有的非數字,包含下劃線

\s:匹配所有空白字元(空格、TAB等)

\S:匹配所有非空白字元,包含下劃線

\w:匹配所有字母、漢字、數字a-z A-Z 0-9

\W:匹配所有非字母、漢字、數字,包含下劃線

特殊字元:

$:匹配一行的結尾(必須放在正則表達式最後面)

^:匹配一行的開頭(必須放在正則表達式最前面)

*:前面的字元可以出現0次或多次(0~無限)

+:前面的字元可以出現1次或多次(1~無限)

?:變”貪婪模式”為”勉強模式”,前面的字元可以出現0次或1次

.:匹配除了換行符”\n”之外的任意單個字元

|:兩項都進行匹配

[ ]:代表一個集合,有如下三種情況

[abc]:能匹配其中的單個字元

[a-z0-9]:能匹配指定範圍的字元,可取反(在最前面加入^)

[2-9] [1-3]:能夠做組合匹配

{ }:用於標記前面的字元出現的頻率,有如下情況:

{n,m}:代表前面字元最少出現n次,最多出現m次

{n,}:代表前面字元最少出現n次,最多不受限制

{,m}:代表前面字元最多出現n次,最少不受

{n}:前面的字元必須出現n次

Python常用的標準庫以及第三方庫有哪些?

Python常用的標準庫有http庫。第三方庫有scrapy,pillow和wxPython.以下有介紹:

Requests.Kenneth Reitz寫的最富盛名的http庫,每個Python程序員都應該有它。

Scrapy.如果你從事爬蟲相關的工作,那麼這個庫也是必不可少的。用過它之後你就不會再想用別的同類庫了。

wxPython.Python的一個GUI(圖形用戶界面)工具。我主要用它替代tkinter。

Pillow.它是PIL的一個友好分支。對於用戶比PIL更加友好,對於任何在圖形領域工作的人是必備的庫。

Python(英國發音:/ˈpaɪθən/ 美國發音:/ˈpaɪθɑːn/), 是一種面向對象的解釋型計算機程序設計語言,由荷蘭人Guido van Rossum於1989年發明,第一個公開發行版發行於1991年。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/159753.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-20 00:15
下一篇 2024-11-20 00:15

相關推薦

  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智慧、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29
  • 蝴蝶優化演算法Python版

    蝴蝶優化演算法是一種基於仿生學的優化演算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化演算法Python版…

    編程 2025-04-29

發表回復

登錄後才能評論