ホームページ  >  記事  >  バックエンド開発  >  おすすめ集|Pythonライブラリ1選、すごい関数4選!

おすすめ集|Pythonライブラリ1選、すごい関数4選!

Python当打之年
Python当打之年転載
2023-08-10 15:34:521146ブラウズ

#今日は Python ライブラリを紹介します[filestools]。これは非常によく知られた人によって書かれました。上司によって開発されました。

filetools ライブラリには現在 4 つのツール パッケージが含まれています。私は次の 4 つの機能がとても気に入っています:

  • Ⅰ ツリー ディレクトリの表示;
  • Ⅱ テキスト ファイルの違いの比較;
  • Ⅲ 画像の透かし;
  • Ⅳcurl ネットワーク リクエスト コマンドをリクエスト ライブラリ リクエスト コードに変換します。
## 最初に指定してください。直接アクセスできます。後で自分で学習できるように、filetools ライブラリの使用手順を参照してください。[公式 Web サイトにアクセスしてボスの名前を表示]
https: //pypi.org/project /filestools/
##このライブラリは使用前にインストールする必要があります。 1 行のコマンドで実行できます:
pip install filestools -i https://pypi.org/simple/ -U
1. ツリー ディレクトリの表示

この関数は、ツリー ディレクトリの表示に役立ちます。指定したディレクトリ内のすべてのファイルとフォルダーを再帰的に検索し、各ファイルとフォルダーのサイズが一目で表示されます。
ウィンドウを例に挙げて説明します。
操作全体は CMD の黒いウィンドウで実行されます。まず、指定したディスクとディレクトリに切り替える方法を学ぶ必要があります。
# 这样即可将C盘,切换到D盘
C:\Users\Administrator>D:

# 使用cd命令,可以切换到指定盘的指定目录
C:\Users\Administrator>cd C:\Users\Administrator\Desktop\python三剑客\加盟店爬虫
ここには、tree とtree2 という 2 つのコマンドがあります。
  • システム内でローカル Python の優先順位がシステム環境の優先順位よりも高い場合は、tree コマンドを直接実行します。
  • システムの優先順位がローカルの Python 環境よりも高い場合は、環境変数の順序を調整して優先順位を変更するだけでなく、tree2 コマンドを使用することもできます。これは以下と一致します。木。ただし、この時点でツリー コマンドを実行しても効果はわかりません。
## 私のコンピュータに基づいて、皆さんにデモします:
おすすめ集|Pythonライブラリ1選、すごい関数4選!
次のことがわかります: ここでツリー コマンドを実行すると、表示されるのはシステム ディスプレイです。ライブラリをインストールする前に。
これは、システム環境がローカル Python よりも高い優先度を持っていることが原因です。
おすすめ集|Pythonライブラリ1選、すごい関数4選!
#この時点で、tree2 コマンドを直接実行できます。
おすすめ集|Pythonライブラリ1選、すごい関数4選!
もちろん、誰もが CMD ウィンドウでコマンドを実行することを好みません。这里我们直接在jupyter notebook中,执行如下操作:
from treedir.tree import tree_dir
tree_dir(r"C:\Users\Administrator\Desktop\python三剑客\加盟店爬虫", m_level=7, no_calc=False)
结果如下:
おすすめ集|Pythonライブラリ1選、すごい関数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>
おすすめ集|Pythonライブラリ1選、すごい関数4選!
需求:想看看对哪里做了修改(如果内容很多的话)
from filediff.diff import file_diff_compare
file_diff_compare("a.txt", "b.txt")
这会在当前工作目录下,生成一个<span style="font-size: 15px;">html</span>网页文件。
おすすめ集|Pythonライブラリ1選、すごい関数4選!
双击打开,观察其中的内容:
おすすめ集|Pythonライブラリ1選、すごい関数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>
#元の画像は次のとおりです:
おすすめ集|Pythonライブラリ1選、すごい関数4選!
#最終的な効果は次のとおりです:
おすすめ集|Pythonライブラリ1選、すごい関数4選!
##4. ライブラリリクエストコードへのカールネットワークリクエスト

クローラを作成するとき、私たちはしばしば次のようないくつかのパラメータ情報を使用します。これ:
おすすめ集|Pythonライブラリ1選、すごい関数4選!
いちいち手動でコピーするのは面倒でしょうか?
この関数はこの問題を解決します。cURL を Python コードに変換できます。コピーするだけで済みます。
一般的な手順は次のとおりです。
  • Ⅰ まず、キャプチャしたネットワークを Google ブラウザにコピーします。リクエストは次のとおりです。 cURL (bash);
  • Ⅱcurl2py コマンドを使用して Python コードに変換します;
## Python の
Internship Network<span style="font-size: 15px;"></span> の立場を説明の例として取り上げます。
http://www.shixi.com/search/index?key=python
画像に従ってください以下の操作では、単一リクエストのcurlをコピーしました。
可以看到: 这里有各种不同的请求url,然后<span style="font-size: 12px;">-H</span>后面是该请求对应的各种参数。我们需要请求哪个链接,就复制对应的curl。
仔细观察下图哦:
おすすめ集|Pythonライブラリ1選、すごい関数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)
最终结果如下:
おすすめ集|Pythonライブラリ1選、すごい関数4選!
可以看到,很多参数都被转换为规则的Python代码了,我们直接拿着用即可,是不是很方便。

以上がおすすめ集|Pythonライブラリ1選、すごい関数4選!の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はPython当打之年で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。