
Python標準庫—走馬觀花
Python有一套很有用的標準庫(standard library)。標準庫會隨著Python解釋器,一起安裝在你的電腦中的。它是Python的一個組成部分。這些標準庫是Python為你準備好的利器,可以讓編程事半功倍。
我將根據我個人的使用經驗中,挑選出標準庫三個方面的包(package)介紹:
Python增強
系統互動
網絡
第一類:Python增強
Python自身的已有的一些功能可以隨著標準庫的使用而得到增強。
1) 文字處理
Python的string類提供了對字符串進行處理的方法。更進一步,通過標準庫中的re包,Python可以用正則表達式(regular expression)來處理字符串。
正則表達式是一個字符串模板。Python可以從字符中搜查符合該模板的部分,或者對這一部分替換成其它內容。比如你可以搜索一個文本中所有的數字。正則表達式的關鍵在于根據自己的需要構成模板。
此外,Python標準庫還為字符串的輸出提供更加豐富的格式, 比如: string包,textwrap包。
2) 數據對象
不同的數據對象,適用于不同場合的對數據的組織和管理。Python的標準庫定義了表和詞典之外的數據對象,比如說數組(array),隊列(Queue)。一個熟悉數據結構(data structure)的Python用戶可以在這些包中找到自己需要的數據結構。
此外,我們也會經常使用copy包,以復制對象。
3) 日期和時間
日期和時間的管理并不復雜,但容易犯錯。Python的標準庫中對日期和時間的管理頗為完善(利用time包管理時間,利用datetime包管理日期和時間),你不僅可以進行日期時間的查詢和變換(比如:2012年7月18日對應的是星期幾),還可以對日期時間進行運算(比如2000.1.1 13:00的378小時之后是什么日期,什么時間)。通過這些標準庫,還可以根據需要控制日期時間輸出的文本格式(比如:輸出’2012-7-18‘還是'18 Jul 2012')
4) 數學運算
標準庫中,Python定義了一些新的數字類型(decimal包, fractions包), 以彌補之前的數字類型(integer, float)可能的不足。標準庫還包含了random包,用于處理隨機數相關的功能(產生隨機數,隨機取樣等)。math包補充了一些重要的數學常數和數學函數,比如pi,三角函數等等。
(盡管numpy并不是標準庫中的包,但它的數組運算的良好支持,讓它在基于Python的科研和計算方面得到相當廣泛的應用,可以適當關注。)
5) 存儲
之前我們的快速教程中,只提及了文本的輸入和輸出。實際上,Python可以輸入或輸出任意的對象。這些對象可以通過標準庫中的pickle包轉換成為二進制格式(binary),然后存儲于文件之中,也可以反向從二進制文件中讀取對象。
此外,標準庫中還支持基本的數據庫功能(sqlite3包)。XML和csv格式的文件也有相應的處理包。
第二類:系統互動
系統互動,主要指Python和操作系統(operate system)、文件系統(file system)的互動。Python可以實現一個操作系統的許多功能。它能夠像bash腳本那樣管理操作系統,這也是Python有時被成為腳本語言的原因。
1) Python運行控制
sys包被用于管理Python自身的運行環境。Python是一個解釋器(interpreter), 也是一個運行在操作系統上的程序。我們可以用sys包來控制這一程序運行的許多參數,比如說Python運行所能占據的內存和CPU, Python所要掃描的路徑等。另一個重要功能是和Python自己的命令行互動,從命令行讀取命令和參數。
2) 操作系統
如果說Python構成了一個小的世界,那么操作系統就是包圍這個小世界的大世界。Python與操作系統的互動可以讓Python在自己的小世界里管理整個大世界。
os包是Python與操作系統的接口。我們可以用os包來實現操作系統的許多功能,比如管理系統進程,改變當前路徑(相當于’cd‘),改變文件權限等,建立。但要注意,os包是建立在操作系統的平臺上的,許多功能在Windows系統上是無法實現的。另外,在使用os包中,要注意其中的有些功能已經被其他的包取代。
我們通過文件系統來管理磁盤上儲存的文件。查找、刪除,復制文件,以及列出文件列表等都是常見的文件操作。這些功能經??梢栽诓僮飨到y中看到(比如ls, mv, cp等Linux命令),但現在可以通過Python標準庫中的glob包、shutil包、os.path包、以及os包的一些函數等,在Python內部實現。
subprocess包被用于執行外部命令,其功能相當于我們在操作系統的命令行中輸入命令以執行,比如常見的系統命令'ls'或者'cd',還可以是任意可以在命令行中執行的程序。
4) 線程與進程
Python支持多線程(threading包)運行和多進程(multiprocessing包)運行。通過多線程和多進程,可以提高系統資源的利用率,提高計算機的處理速度。Python在這些包中,附帶有相關的通信和內存管理工具。此外,Python還支持類似于UNIX的signal系統,以實現進程之間的粗糙的信號通信。
第三類:網絡
現在,網絡功能的強弱很大程度上決定了一個語言的成功與否。從Ruby, JavaScript, php身上都可以感受到這一點。Python的標準庫對互聯網開發的支持并不充分,這也是Django等基于Python的項目的出發點: 增強Python在網絡方面的應用功能。這些項目取得了很大的成功,也是許多人愿意來學習Python的一大原因。但應注意到,這些基于Python的項目也是建立在Python標準庫的基礎上的。
1) 基于socket層的網絡應用
socket是網絡可編程部分的底層。通過socket包,我們可以直接管理socket,比如說將socket賦予給某個端口(port),連接遠程端口,以及通過連接傳輸數據。我們也可以利用SocketServer包更方便地建立服務器。
通過與多線程和多進程配合,建立多線程或者多進程的服務器,可以有效提高服務器的工作能力。此外,通過asyncore包實現異步處理,也是改善服務器性能的一個方案。
2) 互聯網應用
在實際應用中,網絡的很多底層細節(比如socket)都是被高層的協議隱藏起來的。建立在socket之上的http協議實際上更容易也更經常被使用。http通過request/responce的模式建立連接并進行通信,其信息內容也更容易理解。Python標準庫中有http的服務器端和客戶端的應用支持(BaseHTTPServer包; urllib包, urllib2包), 并且可以通過urlparse包對URL(URL實際上說明了網絡資源所在的位置)進行理解和操作。
以上的介紹比較粗糙,只希望能為大家提供一個了解標準庫的入口。歡迎大家一起分享標準庫的使用經驗。
數據分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
CDA數據分析師證書考試體系(更新于2025年05月22日)
2025-05-26解碼數據基因:從數字敏感度到邏輯思維 每當看到超市貨架上商品的排列變化,你是否會聯想到背后的銷售數據波動?三年前在零售行 ...
2025-05-23在本文中,我們將探討 AI 為何能夠加速數據分析、如何在每個步驟中實現數據分析自動化以及使用哪些工具。 數據分析中的AI是什么 ...
2025-05-20當數據遇見人生:我的第一個分析項目 記得三年前接手第一個數據分析項目時,我面對Excel里密密麻麻的銷售數據手足無措。那些跳動 ...
2025-05-20在數字化運營的時代,企業每天都在產生海量數據:用戶點擊行為、商品銷售記錄、廣告投放反饋…… 這些數據就像散落的拼圖,而相 ...
2025-05-19在當今數字化營銷時代,小紅書作為國內領先的社交電商平臺,其銷售數據蘊含著巨大的商業價值。通過對小紅書銷售數據的深入分析, ...
2025-05-16Excel作為最常用的數據分析工具,有沒有什么工具可以幫助我們快速地使用excel表格,只要輕松幾步甚至輸入幾項指令就能搞定呢? ...
2025-05-15數據,如同無形的燃料,驅動著現代社會的運轉。從全球互聯網用戶每天產生的2.5億TB數據,到制造業的傳感器、金融交易 ...
2025-05-15大數據是什么_數據分析師培訓 其實,現在的大數據指的并不僅僅是海量數據,更準確而言是對大數據分析的方法。傳統的數 ...
2025-05-14CDA持證人簡介: 萬木,CDA L1持證人,某電商中廠BI工程師 ,5年數據經驗1年BI內訓師,高級數據分析師,擁有豐富的行業經驗。 ...
2025-05-13CDA持證人簡介: 王明月 ,CDA 數據分析師二級持證人,2年數據產品工作經驗,管理學博士在讀。 學習入口:https://edu.cda.cn/g ...
2025-05-12CDA持證人簡介: 楊貞璽 ,CDA一級持證人,鄭州大學情報學碩士研究生,某上市公司數據分析師。 學習入口:https://edu.cda.cn/g ...
2025-05-09CDA持證人簡介 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度、美團、阿里等 ...
2025-05-07相信很多做數據分析的小伙伴,都接到過一些高階的數據分析需求,實現的過程需要用到一些數據獲取,數據清洗轉換,建模方法等,這 ...
2025-05-06以下的文章內容來源于劉靜老師的專欄,如果您想閱讀專欄《10大業務分析模型突破業務瓶頸》,點擊下方鏈接 https://edu.cda.cn/g ...
2025-04-30CDA持證人簡介: 邱立峰 CDA 數據分析師二級持證人,數字化轉型專家,數據治理專家,高級數據分析師,擁有豐富的行業經驗。 ...
2025-04-29CDA持證人簡介: 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度,美團,阿里等 ...
2025-04-28CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-27數據分析在當今信息時代發揮著重要作用。單因素方差分析(One-Way ANOVA)是一種關鍵的統計方法,用于比較三個或更多獨立樣本組 ...
2025-04-25CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-25