0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

這些非常好用的的Python庫你知道多少

馬哥Linux運(yùn)維 ? 來源:未知 ? 2018-12-31 14:41 ? 次閱讀

下面給大家推薦幾個我用過的,并且特別好用的項(xiàng)目,而不是簡單的貼一下awesome python。相信很多人看完awesome python以后,只是簡單的收藏一下,并沒有很多幫助。

1. yagmail

Python官網(wǎng)上發(fā)郵件的例子(Examples - Python 2.7.13 documentation),大家感受一下。反正我看到這一堆的import就已經(jīng)被嚇退場了。

o4YBAFwl8FKAYp8EAAB8jZb4I4Q632.png

如果使用yagmail,發(fā)送一個帶附件的郵件,只需要2行代碼:

o4YBAFwl8FOAUpEjAABYTAJ8hJ0148.png

2. requests

requests很多人都推薦過了,不過可能一些同學(xué)感受不到requests到底好在哪里。我們就以官網(wǎng)的例子為例簡單說明,在沒有request之前,如果我們要請求https://api.github.com/user,需要像下面這樣:

o4YBAFwl8FOAMIyNAACV4acFWyY500.png

用requests以后,做同樣的事情,我們可以這樣(注意,前3行代碼等于上面一整段代碼):

o4YBAFwl8FOARC3rAABOgsOslJs113.png

3. psutil

psutil是用來獲取操作系統(tǒng)監(jiān)控以及進(jìn)程管理的,如果你正在寫一個監(jiān)控系統(tǒng)(或腳本),趕緊去試試。這么說吧,我曾經(jīng)使用psutil把網(wǎng)易內(nèi)部的一個監(jiān)控模塊,從1000+行重構(gòu)到了100+行。

我這里推薦的幾個庫,可能yagmail對最多人有用。而psutil,對專業(yè)的人士最有用。如果你要寫一個監(jiān)控系統(tǒng),不使用psutil的話,只能直接去/proc目錄下讀取想用的文件進(jìn)行計(jì)算,或者執(zhí)行iostat、vmstat、df等linux命令獲取命令輸出,不管哪一種方法,都要處理很多繁瑣的細(xì)節(jié)。有了psutil以后,就輕松多了。貼段代碼大家感受一下:

o4YBAFwl8FSANAQeAAA6-uLFjhI866.png

此外,使用越來越廣泛的監(jiān)控工具glances(如果沒用過,要不現(xiàn)在就是試試?),就是用psutil收集相關(guān)數(shù)據(jù)的。

4. BeautifulSoup

如果你寫爬蟲,還在用XPath解析HTML,那趕緊用用BeautifulSoup,比XPath好用一百倍;如果你還在用正則表達(dá)式從HTML中獲取內(nèi)容,BeautifulSoup能讓你好用到哭。(補(bǔ)充:評論里大家都說XPath更好用,難道是我思維方式和大家不一樣?)

BeautifulSoup是用來解析HTML的,特點(diǎn)就是好用,有人吐槽BeautifulSoup慢?我不在乎BeautifulSoup比XPath慢多少,我只知道,我的時間比機(jī)器的更寶貴。

例如,要找到頁面中所有的links,如下所示:

o4YBAFwl8FSAPwk2AAAfSSgEv7A174.png

例如,我在編寫知乎的爬蟲的時候,對于每一個用戶的”關(guān)注”頁面,對于每一個關(guān)注對象,有如下的tag:

o4YBAFwl8FSAab1pAABM1P0Obko389.png

所以,解析單個關(guān)注的用戶代碼如下所示:

o4YBAFwl8FWAKF4MAACPz0NeLDw859.png

有了BeautifulSoup以后,爬蟲操作就變得特別簡單了。臟活累活別人都幫忙做好了。

5. utils

除了開源的庫以外,還有些開源項(xiàng)目的DataStruct.py helper.py utils.py文件,也值得看一看。里面很多好東西,都是可以直接拿過來用的。

<img src="https://pic4.zhimg.com/v2-0f15c1bee04b1ae03bbc0ef1eb13d10f_b.jpg" data-rawwidth="652" data-rawheight="600" class="origin_image zh-lightbox-thumb" width="652" data-original="https://pic4.zhimg.com/v2-0f15c1bee04b1ae03bbc0ef1eb13d10f_r.jpg">

我舉幾個例子。

requests中的CaseInsensitiveDict(https://github.com/kennethreitz/requests/blob/v1.2.3/requests/structures.py#L37-L109),大家看名字就知道什么意思了,我就不多說了。

werkzeug中的LocalProxy、ImmutableList、ImmutableDict(https://github.com/pallets/werkzeug/blob/master/werkzeug/datastructures.py#L128),其中ImmutableList和ImmutableDict大家一看就知道是什么意思,這里要說的是LocalProxy,使用LocalProxy,分分鐘實(shí)現(xiàn)代理模式。

web.py的utils.py中各個函數(shù)和類都值得看一看(https://github.com/webpy/webpy/blob/master/web/utils.py#L48),不但可以了解好用的函數(shù)和數(shù)據(jù)結(jié)構(gòu),而且,還能夠?qū)W習(xí)一下高手的Python代碼。例如:

ps:web.py的作者是亞倫·斯沃茨(Aaron Swartz),一位年少成名的計(jì)算機(jī)天才,著名社交網(wǎng)站Reddit聯(lián)合創(chuàng)始人。致力于網(wǎng)絡(luò)信息開放,卻因涉嫌非法侵入麻省理工學(xué)院(MIT)和JSTOR(全稱Journal Storage,存儲學(xué)術(shù)期刊的在線系統(tǒng))被指控,將受到最高35年監(jiān)禁和100萬美元罰款。該案正在認(rèn)罪辯訴階段,而亞倫·斯沃茨卻于2013年1月11日在其紐約布魯克林的寓所內(nèi),用一根皮帶上吊自殺,尸體隨后被女友發(fā)現(xiàn),年僅26歲。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    6545

    瀏覽量

    122744
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4671

    瀏覽量

    67767
  • python
    +關(guān)注

    關(guān)注

    53

    文章

    4753

    瀏覽量

    84080

原文標(biāo)題:一些讓你相見恨晚的Python庫(一)

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    Python編程學(xué)習(xí)筆記(1)

    這里推薦VSCode。安裝完python的插件后,非常好用。
    發(fā)表于 09-20 16:15 ?319次閱讀
    <b class='flag-5'>Python</b>編程學(xué)習(xí)筆記(1)

    [推薦]非常好用硬盤溫度測試工具

      為大家推薦一款非常好用的硬盤溫度測試工具 :     
    發(fā)表于 05-29 14:26

    一鍵設(shè)置/解除所有Vi密碼,非常好用

    一鍵設(shè)置/解除所有Vi密碼,非常好用
    發(fā)表于 09-08 21:09

    python數(shù)據(jù)分析的類

    Python,它和下面我們要講的IPython結(jié)合的很爽,絕對是好基友,提供了一種非常好用的交互式的數(shù)據(jù)繪圖環(huán)境。4.IPythonIPython是Python科學(xué)計(jì)算標(biāo)準(zhǔn)工具集的
    發(fā)表于 05-10 15:18

    TCP IP通信labview程序,非常好用的資料

    TCP IP通信labview程序,非常好用
    發(fā)表于 04-03 18:17

    非常好用的stm32學(xué)習(xí)資料

    非常好用的stm32學(xué)習(xí)資料,與大家分享
    發(fā)表于 09-27 08:27

    非常好用的SmartPrinter虛擬打印機(jī)免費(fèi)下載

    非常好用的SmartPrinter虛擬打印機(jī)免費(fèi)下載
    發(fā)表于 07-07 22:04 ?21次下載

    非常好用的KeilC51最新版

    電子發(fā)燒友網(wǎng)站提供《非常好用的KeilC51最新版.txt》資料免費(fèi)下載
    發(fā)表于 07-11 14:21 ?0次下載

    51單片機(jī)教程 非常好用

    51單片機(jī)教程 非常好用
    發(fā)表于 10-13 09:16 ?61次下載

    lvButton一個非常好用的按鈕按件工程文件免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是lvButton一個非常好用的按鈕按件工程文件和程序免費(fèi)下載VB常用控件學(xué)習(xí)。
    發(fā)表于 10-16 17:18 ?2次下載

    IOS這些實(shí)用的小技巧知道多少

    iPhone實(shí)用小技巧,送給那些手機(jī)到手后從來不看iPhone說明書的人蘋果系統(tǒng)以流暢著稱,從更新到iOS13以來,其實(shí)實(shí)際使用中的小細(xì)節(jié)也非常好用,有些小功能簡直不要太實(shí)用。
    的頭像 發(fā)表于 02-22 15:44 ?2408次閱讀

    一個非常好用的AD封裝免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是一個非常好用的AD封裝免費(fèi)下載。
    發(fā)表于 04-07 08:00 ?0次下載
    一個<b class='flag-5'>非常好用</b>的AD封裝<b class='flag-5'>庫</b>免費(fèi)下載

    單片機(jī)軟件開發(fā)神器,非常好用的文件比較工具

    單片機(jī)軟件開發(fā)神器,非常好用的文件比較工具
    發(fā)表于 11-13 12:51 ?1次下載
    單片機(jī)軟件開發(fā)神器,<b class='flag-5'>非常好用</b>的文件比較工具

    Gui硬件運(yùn)行要求

    今天給大家推薦一個很不錯的Gui:GuiLite,非常好用,希望對有所幫助。
    的頭像 發(fā)表于 11-01 09:46 ?919次閱讀

    Akshare:一個非常好用的開源A股數(shù)據(jù)獲取模塊

    Akshare是一個非常好用的開源A股數(shù)據(jù)獲取模塊,它是基于 Python 的財(cái)經(jīng)數(shù)據(jù)接口,目的是實(shí)現(xiàn)對A股、美股、期貨等金融產(chǎn)品的基本面數(shù)據(jù)、實(shí)時和歷史行情數(shù)據(jù)、衍生數(shù)據(jù)從數(shù)據(jù)采集、數(shù)據(jù)清洗
    的頭像 發(fā)表于 10-21 10:58 ?5042次閱讀
    Akshare:一個<b class='flag-5'>非常好用</b>的開源A股數(shù)據(jù)獲取模塊