Всем привет, меня зовут Цзеджи.
Представляем библиотеку Python сегодня【файловые инструменты】, был разработан большим парнем, с которым все очень хорошо знакомы.
Библиотека filestools на данный момент содержит четыре набора инструментов, мне очень нравятся эти четыре функции, а именно:
- Ⅰ Отображение каталога в виде дерева;
- Ⅱ Различное сравнение текстовых файлов;
- Ⅲ Добавляйте водяные знаки на изображения;
- Ⅳ Преобразование команды сетевого запроса curl в код запроса библиотеки запросов;
Эту библиотеку необходимо установить, прежде чем ее можно будет использовать. Это может сделать одна строка команды:
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 выше, чем приоритет системной среды, непосредственно выполните команду дерева;
- Если ваша система имеет более высокий приоритет, чем локальный python, в дополнение к настройке порядка переменных среды для изменения приоритета вы также можете использовать команду tree2, которая согласуется с tree. Но если вы выполните команду дерева в это время, вы не увидите эффекта;
На основе моего компьютера я покажу вам:
можно увидеть:Я выполняю команду дерева здесь, и дисплей является системным дисплеем до установки библиотеки.
Это связано с тем, что системная среда имеет более высокий приоритет, чем локальный питон.
Теперь мы можем напрямую выполнить команду tree2.
Конечно, людям не нравится выполнять команды в окне CMD. Здесь мы делаем следующее прямо в блокноте jupyter:
from treedir.tree import tree_dir
tree_dir(r"C:\Users\Administrator\Desktop\python三剑客\加盟店爬虫", m_level=7, no_calc=False)
Результат выглядит следующим образом:
Что касается функции tree_dir(), вводятся следующие три параметра:
- путь: рекурсивно отображаемый путь к каталогу, по умолчанию текущий каталог;
- m_level: максимальное количество рекурсивно отображаемых уровней, по умолчанию 7 уровней;
- no_calc: после указания этого параметра для папок, которые превышают максимальное количество рекурсивно отображаемых слоев, размер папки больше не будет рекурсивно рассчитываться;
2. Сравнение текстовых файлов
Эта функция может помочь нам сравнить различия между двумя файлами и вывести их на HTML-страницы. Например, мы написали кусок кода, а потом изменили его. Но из-за слишком большого количества кода мы не знаем, где его изменить. В настоящее время использование этой функции поможет нам сравнить.
Давайте рассмотрим такой пример, раньше у меня был файл a.txt, через какое-то время я модифицировал в нем содержимое и получил окончательный b.txt.
необходимость:хотелось бы посмотреть, где были внесены изменения (если контента много)
from filediff.diff import file_diff_compare
file_diff_compare("a.txt", "b.txt")
Это создаст файл веб-страницы html в текущем рабочем каталоге.
Дважды щелкните, чтобы открыть и просмотреть содержимое:
Среди них: желтый цвет указывает на измененный контент, зеленый — на недавно добавленный контент, а красный — на удаленный контент.
Для функции file_diff_compare() есть 7 следующих параметров:
from filediff.diff import file_diff_compare
file_diff_compare(file1, file2, diff_out='diff_result.html', max_width=70, numlines=0, show_all=False, no_browser=False)
7 параметров описываются следующим образом:
- файл1 / файл2: два сравниваемых файла должны быть текстовыми файлами;
- diff_out: имя файла (формат веб-страницы), в котором сохраняется результат разности, значение по умолчанию — diff_result.html;
- max_width: автоматически переносить строку, когда каждая строка превышает количество символов, значение по умолчанию — 70;
- numlines: сколько строк отображать до и после разностной строки, по умолчанию 0;
- show_all: Пока этот параметр установлен, это означает, что отображаются все исходные данные.В настоящее время параметр -n недействителен, и все они не отображаются по умолчанию;
- no_browser: Установка этого параметра не приведет к автоматическому открытию браузера после создания результата. Если установлено значение False, браузер будет открыт автоматически;
3. Изображение водяного знака
Это должен быть лучший код водяного знака изображения, который я когда-либо видел.Функция add_mark() вызывается для добавления водяного знака к изображению.
from watermarker.marker import add_mark
# 注意:有些参数是默认参数,你可以随意修改的;
add_mark(file, mark, out='output', color='#8B8B1B', size=30, opacity=0.15, space=75, angle=30)
Что касается функции add_mark(), вводятся следующие восемь параметров:
- файл: фотография, на которую нужно нанести водяной знак;
- mark: какие слова использовать в качестве водяных знаков;
- out: место для сохранения после добавления водяного знака;
- цвет: цвет шрифта водяного знака, цвет по умолчанию #8B8B1B;
- размер: размер шрифта водяного знака, по умолчанию 50;
- непрозрачность: прозрачность шрифта водяного знака, по умолчанию 0,15;
- пробел: расстояние между шрифтами водяных знаков, по умолчанию 75 пробелов;
- угол: угол поворота шрифта водяного знака, по умолчанию 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)
Мы хотим добавить водяной знак одноклассника Хуана в университет.jpg Сохраненное местоположение находится в папке сканера франчайзингового магазина Прозрачность 0,2, угол поворота 30 °, интервал между шрифтами 30.
Исходное изображение выглядит следующим образом:
Окончательный эффект выглядит следующим образом:
4. сетевой запрос curl для запроса кода запроса библиотеки
Когда мы пишем поисковые роботы, мы часто используем некоторую информацию о параметрах, например:
Если копировать вручную по одному, будет ли это очень хлопотно?
Эта функция решает эту проблему, она умеет преобразовывать cURL в код Python, нам просто нужно его скопировать.
Общие шаги таковы:
- ① Сначала в Google Chrome скопируйте сетевой запрос, перехваченный сетью, как cURL (bash);
- Ⅱ Преобразуйте его в код Python с помощью команды curl2py;
Возьмите позицию Python в сети стажировок в качестве примера для объяснения.
Следуя приведенной ниже диаграмме, мы воспроизвели curl для одного запроса.
можно увидеть:Здесь есть различные URL-адреса запроса, а затем -H сопровождается различными параметрами, соответствующими запросу. Нам нужно запросить какую ссылку, скопировать соответствующий 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, вы можете преобразовать его в код Python с помощью команды curl2py.
from curl2py.curlParseTool import curlCmdGenPyScript
curl_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)
Окончательный результат выглядит следующим образом:
Видно, что многие параметры были преобразованы в обычный код Python, мы можем использовать его напрямую, не очень ли это удобно.
Если вы считаете, что эта статья полезна для вас,Помните, чтобы не забыть 3 даже, ты уверен, что яСильнейшая мотивация продолжать выпускать больше качественных статей!