Maison  >  Article  >  développement back-end  >  Collection recommandée | 1 bibliothèque Python, 4 fonctions géniales !

Collection recommandée | 1 bibliothèque Python, 4 fonctions géniales !

Python当打之年
Python当打之年avant
2023-08-10 15:34:521189parcourir

Aujourd'hui, je vous présente une bibliothèque Python [filestools], qui a été développée par un grand gars que tout le monde connaît.

La bibliothèque FileStools contient actuellement quatre packages d'outils. Ⅲ Ajoutez un filigrane aux images ;
  • Ⅳ Convertissez la commande de requête réseau curl en code de requête de bibliothèque de requêtes ;
  • Tout d'abord, je vais vous donner les instructions pour utiliser directement la bibliothèque filestools, afin que vous puissiez apprendre. par vous-même plus tard. 【Entrez sur le site officiel pour voir le nom du patron】
  • https://pypi.org/project/filestools/
Vous devez l'installer. bibliothèque avant de l’utiliser. Une ligne de commande peut le faire :
pip install filestools -i https://pypi.org/simple/ -U
1. Affichage du répertoire arborescent
Cette fonction peut nous aider à afficher de manière récursive tous les fichiers et dossiers du répertoire spécifié et à afficher les informations de chaque fichier et dossier. La taille est claire en un coup d'œil. Prenons Windows comme exemple pour expliquer.
L'ensemble de l'opération est effectuée dans la fenêtre noire CMD. Vous devez d’abord apprendre à basculer vers un disque et un répertoire spécifiés.
# 这样即可将C盘,切换到D盘
C:\Users\Administrator>D:

# 使用cd命令,可以切换到指定盘的指定目录
C:\Users\Administrator>cd C:\Users\Administrator\Desktop\python三剑客\加盟店爬虫

Il contient deux commandes : tree et tree2.

Si dans votre système, la priorité du python local est supérieure à la priorité de l'environnement système, exécutez directement la commande tree
Si dans votre système, la priorité de l'environnement système ; est supérieure à la priorité du python local. En plus d'ajuster l'ordre des variables d'environnement et de modifier la priorité, vous pouvez également utiliser la commande tree2, qui est cohérente avec tree.Mais si vous exécutez la commande tree à ce moment-là, vous ne verrez pas l'effet
Sur la base de mon ordinateur, je vais la démontrer à tout le monde :
Collection recommandée | 1 bibliothèque Python, 4 fonctions géniales !
Vous pouvez voir : J'exécute la commande tree ici, ce qui est affiché est l'affichage du système avant l'installation de la bibliothèque.
Cela est dû au fait que l'environnement système a une priorité plus élevée que le python local.
Collection recommandée | 1 bibliothèque Python, 4 fonctions géniales !
À ce stade, nous pouvons exécuter directement la commande tree2.
Collection recommandée | 1 bibliothèque Python, 4 fonctions géniales !
Bien sûr, tout le monde n'aime pas exécuter des commandes dans la fenêtre CMD.这里我们直接在jupyter notebook中,执行如下操作:
from treedir.tree import tree_dir
tree_dir(r"C:\Users\Administrator\Desktop\python三剑客\加盟店爬虫", m_level=7, no_calc=False)
结果如下:
Collection recommandée | 1 bibliothèque Python, 4 fonctions géniales !
关于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>
Collection recommandée | 1 bibliothèque Python, 4 fonctions géniales !
需求:想看看对哪里做了修改(如果内容很多的话)
from filediff.diff import file_diff_compare
file_diff_compare("a.txt", "b.txt")
这会在当前工作目录下,生成一个<span style="font-size: 15px;">html</span>网页文件。
Collection recommandée | 1 bibliothèque Python, 4 fonctions géniales !
双击打开,观察其中的内容:
Collection recommandée | 1 bibliothèque Python, 4 fonctions géniales !
其中:<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:设置这个参数,在生成结果后,不会自动打开游览器。Lorsqu'il est défini sur False, le navigateur s'ouvrira automatiquement ;

3 Ajouter un filigrane aux images

Cela devrait être le meilleur que j'ai jamais vu<code style='font-size: 14px;padding: 2px 4px;border-radius: 4px;margin-right: 2px;margin-left: 2px;background-color: rgba(27, 31, 35, 0.05);font-family: "Operator Mono", Consolas, Monaco, Menlo, monospace;word-break: break-all;color: rgb(239, 112, 96);'><span style="font-size: 15px;">图片加水印</span>Filigrane d'images🎜Code, appel pour ajouter un filigrane aux images est la fonction 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>
L'image originale est la suivante :
Collection recommandée | 1 bibliothèque Python, 4 fonctions géniales !
L'effet final est le suivant :
Collection recommandée | 1 bibliothèque Python, 4 fonctions géniales !

4. Demande du réseau Curl à See More requêtes code de requête de bibliothèque

Lorsque nous écrivons des robots d'exploration, nous utilisons souvent certaines informations de paramètres, telles que celle-ci :
Collection recommandée | 1 bibliothèque Python, 4 fonctions géniales !
Serait-ce gênant si nous copions manuellement chacun d'entre eux ?
Cette fonction peut résoudre ce problème, elle peut convertir cURL en code Python, il suffit de le copier.
Les étapes approximatives sont les suivantes :
  • Ⅰ Tout d'abord, copiez la requête réseau capturée par le réseau dans cURL (bash)
  • Ⅱ Convertissez-la via la commande curl2py Pour le code python ;
avec <code style='font-size: 14px;padding: 2px 4px;border-radius: 4px;margin-right: 2px;margin-left: 2px;background-color: rgba(27, 31, 35, 0.05);font-family: "Operator Mono", Consolas, Monaco, Menlo, monospace;word-break: break-all;color: rgb(239, 112, 96);'><span style="font-size: 15px;">实习网</span> La position Python sur le site des stages est pris comme exemple pour illustrer.
http://www.shixi.com/search/index?key=python
🎜Suivez l'image ci-dessous, nous avons copié la boucle d'une seule requête.
可以看到: 这里有各种不同的请求url,然后<span style="font-size: 12px;">-H</span>后面是该请求对应的各种参数。我们需要请求哪个链接,就复制对应的curl。
仔细观察下图哦:
Collection recommandée | 1 bibliothèque Python, 4 fonctions géniales !
复制了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)
最终结果如下:
Collection recommandée | 1 bibliothèque Python, 4 fonctions géniales !
可以看到,很多参数都被转换为规则的Python代码了,我们直接拿着用即可,是不是很方便。

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer