首頁  >  文章  >  後端開發  >  推薦收藏 | 1個Python庫,4個超讚功能!

推薦收藏 | 1個Python庫,4個超讚功能!

Python当打之年
Python当打之年轉載
2023-08-10 15:34:521189瀏覽

今天介紹一個Python庫【filestools】,是由一位大家很熟悉的大佬開發的。

filestools庫目前包含四個工具包,這4個功能我真的超級喜歡,分別是:
  • Ⅰ 樹形目錄顯示;
  • Ⅱ 文字檔案差異比較;
  • ##Ⅲ 圖片加浮水印;
  • Ⅳ 將curl網路請求指令轉換成requests庫請求碼;
先給大家直接上filestools庫的使用說明,方便大家後續自行學習【進入官網可以查看大佬姓名】
##https://pypi.org/project /filestools/
<span style="font-size: 15px;"></span>
#在使用前,需要先安裝該程式庫。一行指令即可搞定:
pip install filestools -i https://pypi.org/simple/ -U
1. 樹狀目錄顯示

#這個功能可以幫助我們遞迴展示,指定目錄下的所有文件和資料夾,並且展示每個文件和資料夾的大小,一目了然。
<span style="font-size: 15px;"></span>
我們以windows為例,進行說明。
<span style="font-size: 15px;"></span>
整個操作,是在CMD黑視窗進行的。首先你要學會如何切換到指定盤,指定目錄。
# 这样即可将C盘,切换到D盘
C:\Users\Administrator>D:

# 使用cd命令,可以切换到指定盘的指定目录
C:\Users\Administrator>cd C:\Users\Administrator\Desktop\python三剑客\加盟店爬虫
這裡面有兩個指令:tree和tree2。
<span style="font-size: 15px;"></span>
  • 如果你的系統,本機python優先權高於系統環境的優先權,直接執行tree指令;
  • 如果你的系統,由於系統環境的優先權高於本地python,除了可以調整環境變數順序修改優先權外,還可以使用tree2指令,與tree一致。但你此時執行tree指令,看不見效果;
以我的電腦為基礎,示範給大家看:
推薦收藏 | 1個Python庫,4個超讚功能!
#可以看到: 我在這裡執行tree指令,顯示的就是未安裝該函式庫之前的系統展示。
這是由於系統環境的優先權高於本機python所導致的。
推薦收藏 | 1個Python庫,4個超讚功能!
此時,我們直接執行tree2指令即可。
推薦收藏 | 1個Python庫,4個超讚功能!
當然,大家也不喜歡在CMD視窗中執行指令。这里我们直接在jupyter notebook中,执行如下操作:
from treedir.tree import tree_dir
tree_dir(r"C:\Users\Administrator\Desktop\python三剑客\加盟店爬虫", m_level=7, no_calc=False)
结果如下:
推薦收藏 | 1個Python庫,4個超讚功能!
关于tree_dir()函数,分别介绍如下3个参数
  • path:递归显示的目录路径,默认为当前目录;
  • m_level:递归展示的最大层数,默认为7层;
  • no_calc:指定该参数后,对于超过递归显示的最大层数的文件夹,不再继续递归计算文件夹大小;

2. 文本文件差异比较

这个功能可以帮助我们比较两个文件的差异,输出到HTML网页中。比如说,我们写了一段代码,后面改动了。但是由于代码太多,我们不知道改了哪里,此时,使用这个功能,很好的帮助我们对比。
我们来看这样一个例子,我曾经有一个<span style="font-size: 15px;">a.txt</span>文件,经过一段时间后,我对其中的内容做了修改,得到了最后的<span style="font-size: 15px;">b.txt</span>
推薦收藏 | 1個Python庫,4個超讚功能!
需求:想看看对哪里做了修改(如果内容很多的话)
from filediff.diff import file_diff_compare
file_diff_compare("a.txt", "b.txt")
这会在当前工作目录下,生成一个<span style="font-size: 15px;">html</span>网页文件。
推薦收藏 | 1個Python庫,4個超讚功能!
双击打开,观察其中的内容:
推薦收藏 | 1個Python庫,4個超讚功能!
其中:<span style="font-size: 15px;">黄色</span>表示改动过的内容,<span style="font-size: 15px;">绿色</span>表示新添加过的内容,<span style="font-size: 15px;">红色</span>表示已经删除过的内容。
对于file_diff_compare()函数,有如下7个参数:
from filediff.diff import file_diff_compare
file_diff_compare(file1, file2, diff_out=&#39;diff_result.html&#39;, max_width=70, numlines=0, show_all=False, no_browser=False)
对这7个参数,分别介绍如下:
  • file1 / file2:待比较的两个文件,必须文本文件;
  • diff_out:差异结果保存的文件名(网页格式),默认值diff_result.html;
  • max_width:每行超过多少字符就自动换行,默认值70;
  • numlines:在差异行基础上前后显示多少行,默认是0;
  • show_all:只要设置这个参数就表示显示全部原始数据,此时-n参数无效,默认不显示全部;
  • no_browser:设置这个参数,在生成结果后,不会自动打开游览器。當設定為False後,會自動開啟瀏覽器;

3. 圖片加浮水印

這應該是我見過的最棒的<span style="font-size: 15px;">圖片加水印</span>#程式碼,為圖片加浮水印呼叫的是add_mark()函數。
from watermarker.marker import add_mark

# 注意:有些参数是默认参数,你可以随意修改的;
add_mark(file, mark, out=&#39;output&#39;, color=&#39;#8B8B1B&#39;, size=30, opacity=0.15, space=75, angle=30)
关于add_mark()函数,分别介绍如下8个参数
  • file:待添加水印的照片;
  • mark:使用哪些字作为水印;
  • out:添加水印后保存的位置;
  • color:水印字体的颜色,默认颜色#8B8B1B;
  • size:水印字体的大小,默认50;
  • opacity:水印字体的透明度,默认0.15;
  • space:水印字体之间的间隔, 默认75个空格;
  • angle:水印字体的旋转角度,默认30度;
比如我们执行如下命令:
from watermarker.marker import add_mark
add_mark(file=r"C:\Users\Administrator\Desktop\大学.jpg", out=r"C:\Users\Administrator\Desktop\python三剑客\加盟店爬虫", mark="黄同学", opacity=0.2, angle=30, space=30)
我们想要给<span style="font-size: 15px;">大学.jpg</span>添加一个<span style="font-size: 15px;">黄同学</span>水印,保存的位置在<span style="font-size: 15px;">加盟店爬虫</span>文件夹下,透明度是<span style="font-size: 15px;">0.2</span>,旋转角度是<span style="font-size: 15px;">30°</span>,字体之间的间隔是<span style="font-size: 15px;">30</span>
原圖如下:
推薦收藏 | 1個Python庫,4個超讚功能!
最終效果如下:
推薦收藏 | 1個Python庫,4個超讚功能!

4. curl網路請求轉requests庫請求代碼

#我們在寫爬蟲的時候,常常會使用到一些參數訊息,例如這樣:
推薦收藏 | 1個Python庫,4個超讚功能!
如果一個手動複製,會不會顯得很麻煩?
這個功能就可以解決這個問題,它能夠將cURL轉換為Python程式碼,我們只需要複製即可。
大致步驟是這樣的:
  • #Ⅰ 先在Google遊覽器中,複製網路抓到的網絡請求為cURL(bash);
  • Ⅱ 透過curl2py指令將其轉換為python程式碼;
<span style="font-size: 15px;"></span><span style="font-size: 15px;"></span><span style="font-size: 15px;"></span>
######################### ####以#########實習網#########的Python職位為例,進行說明。 ###############http://www.shixi.com/search/index?key=python###############依照下圖操作,我們複製了單一請求的curl。
可以看到: 这里有各种不同的请求url,然后<span style="font-size: 12px;">-H</span>后面是该请求对应的各种参数。我们需要请求哪个链接,就复制对应的curl。
仔细观察下图哦:
推薦收藏 | 1個Python庫,4個超讚功能!
复制了curl后,可以粘贴出来,看看有哪些东西。
curl &#39;http://www.shixi.com/search/index?key=python&#39; \
  -H &#39;Connection: keep-alive&#39; \
  -H &#39;Cache-Control: max-age=0&#39; \
  -H &#39;Upgrade-Insecure-Requests: 1&#39; \
  -H &#39;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&#39; \
  -H &#39;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&#39; \
  -H &#39;Referer: http://www.shixi.com/&#39; \
  -H &#39;Accept-Language: zh-CN,zh;q=0.9&#39; \
  -H &#39;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&#39; \
  --compressed \
  --insecure
有了上述curl后,就可以通过curl2py命令,将其转换为python代码。
from curl2py.curlParseTool import curlCmdGenPyScript

curl_cmd = """curl &#39;http://www.shixi.com/search/index?key=python&#39; \
  -H &#39;Connection: keep-alive&#39; \
  -H &#39;Cache-Control: max-age=0&#39; \
  -H &#39;Upgrade-Insecure-Requests: 1&#39; \
  -H &#39;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&#39; \
  -H &#39;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&#39; \
  -H &#39;Referer: http://www.shixi.com/&#39; \
  -H &#39;Accept-Language: zh-CN,zh;q=0.9&#39; \
  -H &#39;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&#39; \
  --compressed \
  --insecure"""

output = curlCmdGenPyScript(curl_cmd)
print(output)
最终结果如下:
推薦收藏 | 1個Python庫,4個超讚功能!
可以看到,很多参数都被转换为规则的Python代码了,我们直接拿着用即可,是不是很方便。

以上是推薦收藏 | 1個Python庫,4個超讚功能!的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:Python当打之年。如有侵權,請聯絡admin@php.cn刪除