今天介紹一個Python庫【filestools】,是由一位大家很熟悉的大佬開發(fā)的。
filestools庫目前包含四個工具包,這4個功能我真的超級喜歡,分別是:
在使用之前,需要安裝該庫。一行命令即可搞定:
pip install filestools -i https://pypi.org/simple/ -U
這個功能可以幫助我們遞歸展示,指定目錄下的所有文件和文件夾,并且展示每個文件和文件夾的大小,一目了然。
我們以windows為例,進行說明。
整個操作,是在CMD黑窗口進行的。首先你要學會如何切換到指定盤,指定目錄。
# 這樣即可將C盤,切換到D盤C:\Users\Administrator>D:# 使用cd命令,可以切換到指定盤的指定目錄C:\Users\Administrator>cd C:\Users\Administrator\Desktop\python三劍客\加盟店爬蟲
這里面有兩個命令:tree和tree2。
以我的電腦為基礎,演示給大家看:
可以看到: 我這里執(zhí)行tree命令,顯示的就是未安裝該庫之前的系統(tǒng)展示。
這是由于系統(tǒng)環(huán)境的優(yōu)先級高于本地python導致的。
此時,我們直接執(zhí)行tree2命令即可。
當然,大家也不喜歡在CMD窗口中執(zhí)行命令。這里我們直接在jupyter notebook中,執(zhí)行如下操作:
from treedir.tree import tree_dirtree_dir(r'C:\Users\Administrator\Desktop\python三劍客\加盟店爬蟲', m_level=7, no_calc=False)
結(jié)果如下:
關(guān)于tree_dir()函數(shù),分別介紹如下3個參數(shù):
這個功能可以幫助我們比較兩個文件的差異,輸出到HTML網(wǎng)頁中。比如說,我們寫了一段代碼,后面改動了。但是由于代碼太多,我們不知道改了哪里,此時,使用這個功能,很好的幫助我們對比。
我們來看這樣一個例子,我曾經(jīng)有一個a.txt文件,經(jīng)過一段時間后,我對其中的內(nèi)容做了修改,得到了最后的b.txt。
需求:想看看對哪里做了修改(如果內(nèi)容很多的話)
from filediff.diff import file_diff_comparefile_diff_compare('a.txt', 'b.txt')
這會在當前工作目錄下,生成一個html網(wǎng)頁文件。
雙擊打開,觀察其中的內(nèi)容:
其中:黃色表示改動過的內(nèi)容,綠色表示新添加過的內(nèi)容,紅色表示已經(jīng)刪除過的內(nèi)容。
對于file_diff_compare()函數(shù),有如下7個參數(shù):
from filediff.diff import file_diff_comparefile_diff_compare(file1, file2, diff_out='diff_result.html', max_width=70, numlines=0, show_all=False, no_browser=False)
對這7個參數(shù),分別介紹如下:
這應該是我見過的最棒的圖片加水印代碼,給圖片加水印調(diào)用的是add_mark()函數(shù)。
from watermarker.marker import add_mark# 注意:有些參數(shù)是默認參數(shù),你可以隨意修改的;add_mark(file, mark, out='output', color='#8B8B1B', size=30, opacity=0.15, space=75, angle=30)
關(guān)于add_mark()函數(shù),分別介紹如下8個參數(shù):
比如我們執(zhí)行如下命令:
from watermarker.marker import add_markadd_mark(file=r'C:\Users\Administrator\Desktop\大學.jpg', out=r'C:\Users\Administrator\Desktop\python三劍客\加盟店爬蟲', mark='黃同學', opacity=0.2, angle=30, space=30)
我們想要給大學.jpg添加一個黃同學水印,保存的位置在加盟店爬蟲文件夾下,透明度是0.2,旋轉(zhuǎn)角度是30°,字體之間的間隔是30。
原圖如下:
最終效果如下:
我們在寫爬蟲的時候,經(jīng)常會使用到一些參數(shù)信息,比如這樣:
如果一個個手動復制,會不會顯得很麻煩?
這個功能就可以解決這個問題,它能夠?qū)URL轉(zhuǎn)換為Python代碼,我們只需要復制即可。
大致步驟是這樣的:
以實習網(wǎng)的Python崗位為例,進行說明。
http://www.shixi.com/search/index?key=python
按照下圖操作,我們復制了單個請求的curl。
可以看到: 這里有各種不同的請求url,然后-H后面是該請求對應的各種參數(shù)。我們需要請求哪個鏈接,就復制對應的curl。
仔細觀察下圖哦:
復制了curl后,可以粘貼出來,看看有哪些東西。
curl 'http://www.shixi.com/search/index?key=python' \ -H 'Connection: keep-alive' \ -H 'Cache-Control: max-age=0' \ -H 'Upgrade-Insecure-Requests: 1' \ -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36' \ -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9' \ -H 'Referer: http://www.shixi.com/' \ -H 'Accept-Language: zh-CN,zh;q=0.9' \ -H 'Cookie: UM_distinctid=17a50a2c8ea537-046c01e944e72f-6373267-100200-17a50a2c8eb4ff; PHPSESSID=rpprvtdrcrvt54fkr7msgcde17; CNZZDATA1261027457=1711789791-1624850487-https%253A%252F%252Fwww.baidu.com%252F%7C1627741311; Hm_lvt_536f42de0bcce9241264ac5d50172db7=1627741268; Hm_lpvt_536f42de0bcce9241264ac5d50172db7=1627741334' \ --compressed \ --insecure
有了上述curl后,就可以通過curl2py命令,將其轉(zhuǎn)換為python代碼。
from curl2py.curlParseTool import curlCmdGenPyScriptcurl_cmd = '''curl 'http://www.shixi.com/search/index?key=python' \ -H 'Connection: keep-alive' \ -H 'Cache-Control: max-age=0' \ -H 'Upgrade-Insecure-Requests: 1' \ -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36' \ -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9' \ -H 'Referer: http://www.shixi.com/' \ -H 'Accept-Language: zh-CN,zh;q=0.9' \ -H 'Cookie: UM_distinctid=17a50a2c8ea537-046c01e944e72f-6373267-100200-17a50a2c8eb4ff; PHPSESSID=rpprvtdrcrvt54fkr7msgcde17; CNZZDATA1261027457=1711789791-1624850487-https%253A%252F%252Fwww.baidu.com%252F%7C1627741311; Hm_lvt_536f42de0bcce9241264ac5d50172db7=1627741268; Hm_lpvt_536f42de0bcce9241264ac5d50172db7=1627741334' \ --compressed \ --insecure'''output = curlCmdGenPyScript(curl_cmd)print(output)
最終結(jié)果如下:
可以看到,很多參數(shù)都被轉(zhuǎn)換為規(guī)則的Python代碼了,我們直接拿著用即可,是不是很方便。
如果你覺得這篇文章,對你有幫助的話,記得不要忘記3連,你的肯定就將是我持續(xù)輸出更多優(yōu)質(zhì)文章的最強動力!
聯(lián)系客服