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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

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

下面給大家推薦幾個我用過的,并且特別好用的項目,而不是簡單的貼一下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很多人都推薦過了,不過可能一些同學感受不到requests到底好在哪里。我們就以官網(wǎng)的例子為例簡單說明,在沒有request之前,如果我們要請求https://api.github.com/user,需要像下面這樣:

o4YBAFwl8FOAMIyNAACV4acFWyY500.png

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

o4YBAFwl8FOARC3rAABOgsOslJs113.png

3. psutil

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

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

o4YBAFwl8FSANAQeAAA6-uLFjhI866.png

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

4. BeautifulSoup

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

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

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

o4YBAFwl8FSAPwk2AAAfSSgEv7A174.png

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

o4YBAFwl8FSAab1pAABM1P0Obko389.png

所以,解析單個關注的用戶代碼如下所示:

o4YBAFwl8FWAKF4MAACPz0NeLDw859.png

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

5. utils

除了開源的庫以外,還有些開源項目的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,分分鐘實現(xiàn)代理模式。

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

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

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

    關注

    37

    文章

    6822

    瀏覽量

    123331
  • 代碼
    +關注

    關注

    30

    文章

    4788

    瀏覽量

    68601
  • python
    +關注

    關注

    56

    文章

    4797

    瀏覽量

    84682

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

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Python編程學習筆記(1)

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

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

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

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

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

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

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

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

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

    非常好用的stm32學習資料

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

    非常好用的SmartPrinter虛擬打印機免費下載

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

    非常好用的KeilC51最新版

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

    51單片機教程 非常好用

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

    lvButton一個非常好用的按鈕按件工程文件免費下載

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

    IOS這些實用的小技巧知道多少

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

    一個非常好用的AD封裝免費下載

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

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

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

    Gui硬件運行要求

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

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

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