4 замечательных функции всего с 1 библиотекой Python

искусственный интеллект Python
4 замечательных функции всего с 1 библиотекой Python

Всем привет, меня зовут Цзеджи.

Представляем библиотеку 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 в сети стажировок в качестве примера для объяснения.

woohoo.internship.com/search/in…

Следуя приведенной ниже диаграмме, мы воспроизвели 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 даже, ты уверен, что яСильнейшая мотивация продолжать выпускать больше качественных статей!