os模塊 操作系統(tǒng)
os模塊提供的就是各種 Python 程序與操作系統(tǒng)進(jìn)行交互的接口笆制。通過使用os模塊,一方面可以方便地與操作系統(tǒng)進(jìn)行交互涣达,另一方面頁也可以極大增強(qiáng)代碼的可移植性在辆。
shutil 文件目錄
shutil可以看作 sh + util,即 shell 工具之意度苔,該模塊提供了一些針對文件和文件夾的高級操作匆篓,如:拷貝、刪除寇窑、移動等鸦概,shutil 模塊是對 os 模塊的補(bǔ)充。
sys? 系統(tǒng)
“sys” 即 “system”甩骏,“系統(tǒng)”之意窗市。該模塊提供了一些接口先慷,用于訪問 Python 解釋器自身使用和維護(hù)的變量,同時模塊中還提供了一部分函數(shù)谨设,可以與解釋器進(jìn)行比較深度的交互熟掂。
datetime和time? 時間
datetime 模塊是 Python 內(nèi)置的功能模塊,它可以實現(xiàn)對日期的算數(shù)運算扎拣,以指定的方式格式化日期赴肚。datetime 模塊內(nèi)含有一個同名的 datetime 類,該類中包含多個操作日期的函數(shù)二蓝,
與 datetime 模塊有所不同誉券,time 模塊主要功能是讀取系統(tǒng)時鐘的當(dāng)前時間。其中刊愚,time.time() 和 time.sleep() 是兩個最常用的模塊踊跟。
queue隊列
queue 模塊即隊列,特別適合處理信息在多個線程間安全交換的多線程程序中鸥诽。
collections 集合
collections 是 python 的內(nèi)置模塊商玫,提供了很多方便且高性能的關(guān)于集合的操作,掌握這些知識有助于提高代碼的性能和可讀性牡借。
random 隨機(jī)數(shù)
Python 提供的 random 模塊實現(xiàn)了各種分布式的偽隨機(jī)數(shù)生成器
logging 日志
logging 模塊定義了為應(yīng)用程序和庫實現(xiàn)靈活的事件日志記錄的函數(shù)和類拳昌。
json pickle 序列化
json 是一個文本序列化格式,而 pickle 是一個二進(jìn)制序列化格式钠龙;
json 是我們可以直觀閱讀的炬藤,而 pickle 不可以;
json 是可互操作的碴里,在 Python 系統(tǒng)之外廣泛使用沈矿,而 pickle 則是 Python 專用的;
默認(rèn)情況下咬腋,json 只能表示 Python 內(nèi)置類型的子集羹膳,不能表示自定義的類;但 pickle 可以表示大量的 Python 數(shù)據(jù)類型根竿。
dumps()???????? dump() ? ? ?? loads()??????? load()
pathlib 文件目錄
pathlib 模塊提供了表示文件系統(tǒng)路徑的類溜徙,可適用于不同的操作系統(tǒng)。使用 pathlib 模塊犀填,相比于 os 模塊可以寫出更簡潔蠢壹,易讀的代碼。pathlib 模塊中的 Path 類繼承自 PurePath九巡,對 PurePath 中的部分方法進(jìn)行了重載图贸,相比于 os.path 有更高的抽象級別。使用 pathlib 模塊中的 Path 類讀寫文件、操縱文件路徑和基礎(chǔ)文件系統(tǒng)疏日,統(tǒng)計目錄下的文件類型以及查找匹配目錄下某一類型文件等偿洁。
calendar 日歷
calendar 是與日歷相關(guān)的模塊,該模塊定義了很多類型沟优,主要包括:Calendar涕滋、TextCalendar、HTMLCalendar挠阁,其中 Calendar 是 TextCalendar 和 HTMLCalendar 的基類宾肺,這些類有著十分豐富的日歷處理方法。
math 數(shù)學(xué)
math 模塊 提供了對 C 標(biāo)準(zhǔn)定義的數(shù)學(xué)函數(shù)的訪問侵俗,但該模塊并不支持復(fù)數(shù)運算锨用,如果想使用復(fù)數(shù)預(yù)算需使用 cmath 模塊,將支持計算復(fù)數(shù)的函數(shù)區(qū)分開的目的隘谣,來自于大多數(shù)開發(fā)者并不愿意像數(shù)學(xué)家一樣需要學(xué)習(xí)復(fù)數(shù)的概念增拥,說白了就是我們開發(fā)工作幾乎用不到復(fù)數(shù),得到一個異常而不是一個復(fù)數(shù)結(jié)果也能讓我們更早地監(jiān)測到傳遞的參數(shù)中包含復(fù)數(shù)寻歧。我們可以先使用 dir 函數(shù)查看 math 中包含的內(nèi)容掌栅。
?statistics 數(shù)據(jù)統(tǒng)計
?statistics 模塊提供了基本的數(shù)據(jù)統(tǒng)計操作。
如:mean(data) 用于求給定序列或者迭代器的算術(shù)平均數(shù)码泛。
import statistics
example_list = [1,2,3,4,5,6]
x = statistics.mean(example_list)
print(x)??? # 輸出結(jié)果3.5
paramiko? ssh sftp
paramiko 是一個用 Python 語言編寫的猾封、遵循 SSH2 協(xié)議、支持以加密和認(rèn)證方式進(jìn)行連接遠(yuǎn)程服務(wù)器的模塊弟晚。改模塊可以對遠(yuǎn)程服務(wù)器進(jìn)行一些命令或文件操作。
使用sftp對象上傳和下載文件逾苫,可以在線修改遠(yuǎn)程服務(wù)器上文件的內(nèi)容卿城,獲取遠(yuǎn)程服務(wù)器上的文件列表。
filecmp&difflib模塊
filecmp 模塊主要用于比較文件及目錄铅搓,difflib主要用于比較序列的類和函數(shù)瑟押。
urllib
urllib 是一個 python 內(nèi)置包,不需要額外安裝即可使用星掰,包里面包含了以下幾個用來處理 url 的模塊:
urllib.request多望,用來打開和讀取 url,意思就是可以用它來模擬發(fā)送請求氢烘,就像在瀏覽器里輸入網(wǎng)址然后敲擊回車一樣怀偷,獲取網(wǎng)頁響應(yīng)內(nèi)容。
urllib.error播玖,用來處理 urllib.request 引起的異常椎工,保證程序的正常執(zhí)行。
urllib.parse,用來解析 url维蒙,可以對 url 進(jìn)行拆分掰吕、合并等。
urllib.robotparse颅痊,用來解析 robots.txt 文件殖熟,判斷網(wǎng)站是否能夠進(jìn)行爬取。
掌握以上四個模塊斑响,你就能對網(wǎng)站進(jìn)行簡單的爬蟲操作
threading 線程
使用 threading 模塊創(chuàng)建線程通常有兩種方式:1)使用 threading 模塊中 Thread 類的構(gòu)造器創(chuàng)建線程菱属,即直接對類 threading.Thread 進(jìn)行實例化,并調(diào)用實例化對象的?start?方法創(chuàng)建線程恋捆;2)繼承 threading 模塊中的 Thread 類創(chuàng)建線程類照皆,即用 threading.Thread 派生出一個新的子類,將新建類實例化沸停,并調(diào)用其 start 方法創(chuàng)建線程膜毁。
requests
Requests 是為一個優(yōu)雅而簡單的 Python HTTP 庫。
數(shù)據(jù)庫操作
pymongo? sqlite3? pymysql? redis
爬蟲
pyspider? Scrapy?
urllib 是一個 python 內(nèi)置包愤钾,不需要額外安裝即可使用瘟滨,包里面包含了以下幾個用來處理 url 的模塊:
urllib.request,用來打開和讀取 url能颁,意思就是可以用它來模擬發(fā)送請求杂瘸,就像在瀏覽器里輸入網(wǎng)址然后敲擊回車一樣,獲取網(wǎng)頁響應(yīng)內(nèi)容伙菊。
urllib.error败玉,用來處理 urllib.request 引起的異常,保證程序的正常執(zhí)行镜硕。
urllib.parse运翼,用來解析 url,可以對 url 進(jìn)行拆分兴枯、合并等血淌。
urllib.robotparse,用來解析 robots.txt 文件财剖,判斷網(wǎng)站是否能夠進(jìn)行爬取悠夯。
掌握以上四個模塊,你就能對網(wǎng)站進(jìn)行簡單的爬蟲操作