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

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

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

這些非常好用的的Python庫(kù)你知道多少

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

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

1. yagmail

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

o4YBAFwl8FKAYp8EAAB8jZb4I4Q632.png

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

o4YBAFwl8FOAUpEjAABYTAJ8hJ0148.png

2. requests

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

o4YBAFwl8FOAMIyNAACV4acFWyY500.png

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

o4YBAFwl8FOARC3rAABOgsOslJs113.png

3. psutil

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

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

o4YBAFwl8FSANAQeAAA6-uLFjhI866.png

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

4. BeautifulSoup

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

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

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

o4YBAFwl8FSAPwk2AAAfSSgEv7A174.png

例如,我在編寫(xiě)知乎的爬蟲(chóng)的時(shí)候,對(duì)于每一個(gè)用戶(hù)的”關(guān)注”頁(yè)面,對(duì)于每一個(gè)關(guān)注對(duì)象,有如下的tag:

o4YBAFwl8FSAab1pAABM1P0Obko389.png

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

o4YBAFwl8FWAKF4MAACPz0NeLDw859.png

有了BeautifulSoup以后,爬蟲(chóng)操作就變得特別簡(jiǎn)單了。臟活累活別人都幫忙做好了。

5. utils

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

<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">

我舉幾個(gè)例子。

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

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

web.py的utils.py中各個(gè)函數(shù)和類(lèi)都值得看一看(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ò)信息開(kāi)放,卻因涉嫌非法侵入麻省理工學(xué)院(MIT)和JSTOR(全稱(chēng)Journal Storage,存儲(chǔ)學(xué)術(shù)期刊的在線系統(tǒng))被指控,將受到最高35年監(jiān)禁和100萬(wàn)美元罰款。該案正在認(rèn)罪辯訴階段,而亞倫·斯沃茨卻于2013年1月11日在其紐約布魯克林的寓所內(nèi),用一根皮帶上吊自殺,尸體隨后被女友發(fā)現(xiàn),年僅26歲。

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

    關(guān)注

    37

    文章

    6603

    瀏覽量

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

    關(guān)注

    30

    文章

    4694

    瀏覽量

    68075
  • python
    +關(guān)注

    關(guān)注

    54

    文章

    4756

    瀏覽量

    84283

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

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

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

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

    [推薦]非常好用硬盤(pán)溫度測(cè)試工具

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

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

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

    python數(shù)據(jù)分析的類(lèi)庫(kù)

    Python庫(kù),它和下面我們要講的IPython結(jié)合的很爽,絕對(duì)是好基友,提供了一種非常好用的交互式的數(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一個(gè)非常好用的按鈕按件工程文件免費(fèi)下載

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

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

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

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

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

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

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

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

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

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

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