>  기사  >  백엔드 개발  >  추천 컬렉션 | 1개의 Python 라이브러리, 4개의 멋진 기능!

추천 컬렉션 | 1개의 Python 라이브러리, 4개의 멋진 기능!

Python当打之年
Python当打之年앞으로
2023-08-10 15:34:521185검색

오늘은 누구나 잘 아는 거물이 개발한 Python 라이브러리 [filestools]를 소개합니다.

filestools 라이브러리에는 현재 다음과 같은 네 가지 도구 패키지가 포함되어 있습니다.
  • Ⅰ 트리 디렉터리 표시
  • II 텍스트 파일 차이 비교
  • Ⅲ 사진에 워터마크 추가
    IV 컬 네트워크 요청 명령을 요청 라이브러리 요청 코드로 변환
  • 먼저, 여러분이 배울 수 있도록 filestools 라이브러리를 직접 사용하는 방법을 알려드리겠습니다.
    【상사 이름을 보려면 공식 홈페이지에 들어가세요】
https://pypi.org/project/filestools/
이것을 설치해야 합니다. 라이브러리를 사용하기 전에 한 줄의 명령으로 가능합니다:
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라는 두 가지 명령이 있습니다.
시스템에서 로컬 Python의 우선순위가 시스템 환경의 우선순위보다 높으면 tree 명령을 직접 실행하세요.
  • 시스템에서 시스템 환경의 우선순위가 로컬 Python의 우선순위보다 높습니다. 환경 변수의 순서를 조정하고 우선순위를 수정하는 것 외에도 tree와 일치하는 tree2 명령을 사용할 수도 있습니다.하지만 이때 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;">Watermark Pictures</span><span style="font-size: 15px;">图片加水印</span>Code, 사진에 워터마크를 추가하는 호출은 다음과 같습니다. 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. 컬 네트워크 요청 요청 라이브러리 요청 코드

크롤러를 작성할 때 다음과 같은 일부 매개변수 정보를 사용하는 경우가 많습니다.
추천 컬렉션 | 1개의 Python 라이브러리, 4개의 멋진 기능!
각각 수동으로 복사하면 문제가 될까요?
이 함수는 이 문제를 해결할 수 있습니다. cURL을 Python 코드로 변환할 수 있으므로 복사만 하면 됩니다.
일반적인 단계는 다음과 같습니다.
  • Ⅰ 먼저 네트워크에서 캡처한 네트워크 요청을 cURL(bash)에 복사합니다.
  • Ⅱ python 코드의 경우 ;
<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> Python 위치 인턴십 웹사이트 의 내용을 예시로 들었습니다.
http://www.shixi.com/search/index?key=python
🎜아래 그림에 따라 단일 요청의 컬을 복사했습니다.
可以看到: 这里有各种不同的请求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으로 문의하시기 바랍니다. 삭제