Удаление страниц PDF-файла
Библиотека PyMuPDF включает в себя довольно много сложных методов, которые упрощают удаление страниц из файла PDF. Он позволяет указать либо одну страницу (используя метод deletePage()), либо диапазон номеров страниц (используя метод deletePageRange()), либо список с номерами страниц (используя метод select()).
В следующем примере показано, как использовать список для выбора страниц, которые нужно сохранить в исходном документе. Имейте в виду, что страницы, которые не указаны, не будут частью выходного документа. В нашем случае выходной документ содержит только первую, вторую и четвертую страницы.
#python
Библиотека PyMuPDF включает в себя довольно много сложных методов, которые упрощают удаление страниц из файла PDF. Он позволяет указать либо одну страницу (используя метод deletePage()), либо диапазон номеров страниц (используя метод deletePageRange()), либо список с номерами страниц (используя метод select()).
В следующем примере показано, как использовать список для выбора страниц, которые нужно сохранить в исходном документе. Имейте в виду, что страницы, которые не указаны, не будут частью выходного документа. В нашем случае выходной документ содержит только первую, вторую и четвертую страницы.
#python
Функция reload()
Функция
Функция
#python
Функция
reload()
в Python перезагружает ранее импортированный модуль. Это означает, что код модуля выполняется заново, и любые изменения в модуле становятся доступными.Функция
reload()
принимает в качестве аргумента объект модуля. Этот объект должен быть ранее импортированным модулем.#python
Как стать Python-разработчиком за 4 месяца? 🐍 Об этом расскажут аж на 2-х бесплатных уроках от Merion Academy!
Забирай целый набор из бесплатных полезностей:
📍2 бесплатных урока, где вы познакомитесь с базой, освоите синтаксис и сразу начнете писать свою программу для портфолио.
📍 В дополнение бесплатный интенсив по развитию карьеры, где HR-эксперты расскажут лайфхаки, как создавать сильные резюме и проходить собеседования, так, чтобы вас взяли на работу.
📍Курс по английскому для IT тем, кто захочет учиться дальше.
👉 Регистрируйтесь по ссылке чтобы забирать бесплатные уроки, интенсив по карьере и гайд.
Что еще важно знать:
1. У ребят одна из самых доступных цен, которая в 4-5 раз ниже, чем в других известных школах, но качество обучения на том же уровне. Это достигается за счет того, что в Мерионе не тратят миллионы на продвижение, а рекламируются только на собственных ресурсах и в тематических телеграм-каналах. Кроме этого у них также отсутствуют расходы на младших менторов, которые в большинстве онлайн-платформах представляются вам как "персональный ментор-преподаватель", но на самом деле являются просто бывшими студентами этих же курсов.
2. Есть возможность опции оплаты через сервис "Яндекс-Долями", т.е. учиться сразу, но платить по чуть-чуть.
Merion Academy – это экосистема доступного образования, которая включает в себя:
Youtube-канал, где простыми словами говорят о сложных вещах.
IT-академию, где обучат востребованным направлениям по самым доступным ценам.
IT-базу знаний с полезными статьями
Забирай целый набор из бесплатных полезностей:
📍2 бесплатных урока, где вы познакомитесь с базой, освоите синтаксис и сразу начнете писать свою программу для портфолио.
📍 В дополнение бесплатный интенсив по развитию карьеры, где HR-эксперты расскажут лайфхаки, как создавать сильные резюме и проходить собеседования, так, чтобы вас взяли на работу.
📍Курс по английскому для IT тем, кто захочет учиться дальше.
👉 Регистрируйтесь по ссылке чтобы забирать бесплатные уроки, интенсив по карьере и гайд.
Что еще важно знать:
1. У ребят одна из самых доступных цен, которая в 4-5 раз ниже, чем в других известных школах, но качество обучения на том же уровне. Это достигается за счет того, что в Мерионе не тратят миллионы на продвижение, а рекламируются только на собственных ресурсах и в тематических телеграм-каналах. Кроме этого у них также отсутствуют расходы на младших менторов, которые в большинстве онлайн-платформах представляются вам как "персональный ментор-преподаватель", но на самом деле являются просто бывшими студентами этих же курсов.
2. Есть возможность опции оплаты через сервис "Яндекс-Долями", т.е. учиться сразу, но платить по чуть-чуть.
Merion Academy – это экосистема доступного образования, которая включает в себя:
Youtube-канал, где простыми словами говорят о сложных вещах.
IT-академию, где обучат востребованным направлениям по самым доступным ценам.
IT-базу знаний с полезными статьями
Сравнение двух аудиосообщений с использованием библиотеки Librosa
Важные замечания:
— Для точного сравнения аудиозаписей они должны иметь одинаковую продолжительность и аналогичные условия записи (громкость, уровень шума и т.д.).
— Возможно потребуется дополнительная предварительная обработка, например, нормализация громкости.
#python #librosa
Librosa
— библиотека, которая обеспечивает анализ и обработку звука. Сравнение производится путем вычисления характеристик MFCC (Mel Frequency Cepstral Coefficients), описывающих звуковую сигнатуру каждого аудио.Важные замечания:
— Для точного сравнения аудиозаписей они должны иметь одинаковую продолжительность и аналогичные условия записи (громкость, уровень шума и т.д.).
— Возможно потребуется дополнительная предварительная обработка, например, нормализация громкости.
#python #librosa
Распаковывание последовательностей при неизвестном числе элементов
Для указанного в подзаголовке случая в Python 3 есть оператор звездочки – расширенная операция распаковывания последовательности. Переменной со звездочкой присваивается часть списка, содержащая все неприсвоенные элементы, соответствующие этой позиции.
#python
Для указанного в подзаголовке случая в Python 3 есть оператор звездочки – расширенная операция распаковывания последовательности. Переменной со звездочкой присваивается часть списка, содержащая все неприсвоенные элементы, соответствующие этой позиции.
#python
Python-разработка с нуля за 6 месяцев
Согласно рейтингу Tiobe, Python — самый популярный язык программирования в мире. На нём пишут сайты и приложения, применяют в тестировании, администрировании, аналитике и машинном обучении.
Начните ваш путь к востребованной профессии Python-разработчика с курсом от Нетологии. За 6 месяцев вы изучите:
• основы Python и фреймворка Django
• объектно-ориентированное программирование
• API, Git, базы данных и SQL.
После обучения сможете начать поиск работы на junior-позиции или уйти на фриланс — с поддержкой Нетологии.
За время обучения разработаете 11 проектов для портфолио. Курс построен от простого к сложному — так что подойдёт тем, кто никогда не программировал.
Изучить программу → https://netolo.gy/dhMc
Промокод ПАЙТОН-10 даст дополнительную скидку 10% от цены курса.
Реклама. ООО "Нетология". Erid 2VSb5wYztdN
Согласно рейтингу Tiobe, Python — самый популярный язык программирования в мире. На нём пишут сайты и приложения, применяют в тестировании, администрировании, аналитике и машинном обучении.
Начните ваш путь к востребованной профессии Python-разработчика с курсом от Нетологии. За 6 месяцев вы изучите:
• основы Python и фреймворка Django
• объектно-ориентированное программирование
• API, Git, базы данных и SQL.
После обучения сможете начать поиск работы на junior-позиции или уйти на фриланс — с поддержкой Нетологии.
За время обучения разработаете 11 проектов для портфолио. Курс построен от простого к сложному — так что подойдёт тем, кто никогда не программировал.
Изучить программу → https://netolo.gy/dhMc
Промокод ПАЙТОН-10 даст дополнительную скидку 10% от цены курса.
Реклама. ООО "Нетология". Erid 2VSb5wYztdN
Получаем данные о системе
Кроссплатформенная библиотека psutil позволяет получать информацию о процессоре, памяти, диске, сети, датчиках и запущенных процессах в системе. Примеры базового использования показаны на картинке.
Если говорить про практические применение, psutil полезен в основном для мониторинга системы, ограничения ресурсов процессов и управления запущенными процессами.
Помимо привычных Windows, MacOS и Linux, библиотека также поддерживает системы FreeBSD, OpenBSD, NetBSD, Sun Solaris и AIX.
#psutil
Кроссплатформенная библиотека psutil позволяет получать информацию о процессоре, памяти, диске, сети, датчиках и запущенных процессах в системе. Примеры базового использования показаны на картинке.
Если говорить про практические применение, psutil полезен в основном для мониторинга системы, ограничения ресурсов процессов и управления запущенными процессами.
Помимо привычных Windows, MacOS и Linux, библиотека также поддерживает системы FreeBSD, OpenBSD, NetBSD, Sun Solaris и AIX.
#psutil
Разница между генераторными выражениями и генераторами коллекций
Записи в первой и второй строчке в коде выше очень похожи, но различаются видами скобок. В генераторе списка они квадратные, а в генераторном выражении – круглые.
Распечатав переменные, можно заметить, что значением переменной
Если вам нужен результат, например в виде списка, прямо сейчас для дальнейшего выполнения программы, то используйте генераторы коллекций.
А если же значения понадобятся еще не скоро или вообще неизвестно, понадобится ли они вообще, то предпочтительнее генераторы, чтобы не занимать лишнюю память и не нагружать систему.
#python
Записи в первой и второй строчке в коде выше очень похожи, но различаются видами скобок. В генераторе списка они квадратные, а в генераторном выражении – круглые.
Распечатав переменные, можно заметить, что значением переменной
a
является список, а переменная x
хранит в себе объект генератора. И здесь возникает вопрос, что же использовать.Если вам нужен результат, например в виде списка, прямо сейчас для дальнейшего выполнения программы, то используйте генераторы коллекций.
А если же значения понадобятся еще не скоро или вообще неизвестно, понадобится ли они вообще, то предпочтительнее генераторы, чтобы не занимать лишнюю память и не нагружать систему.
#python
База данных на минималках
Встроенный модуль
Доступ к данным осуществляется с помощью ключей, как и в случае со словарями. А метод
В документации заявляют, что такая база данных является "надежной". Но учитывая, что
#shelve
Встроенный модуль
shelve
позволяет сохранять и читать произвольные данные. Таким образом, можно сохранять любые Python объекты для дальнейшего использования. Доступ к данным осуществляется с помощью ключей, как и в случае со словарями. А метод
shelve.open
поддерживает протокол контекстного менеджера, то есть можно не вызывать метод close
. В документации заявляют, что такая база данных является "надежной". Но учитывая, что
shelve
написан на pickle
, его стоит использовать только в совсем маленьких проектах.#shelve
Декоратор override
Это может быть полезно для:
— Повышения читабельности кода, так как сразу видно, какие методы переопределены.
— Выявления ошибок: если имя метода в дочернем классе не совпадает с именем в родительском, будет выдана ошибка.
— Проверки типов аргументов: декоратор гарантирует, что типы аргументов совпадают с базовым методом.
#python #decorators
@override
используется для переопределения методов в классах-наследниках. Он позволяет указать, что метод в подклассе переопределяет метод базового класса.Это может быть полезно для:
— Повышения читабельности кода, так как сразу видно, какие методы переопределены.
— Выявления ошибок: если имя метода в дочернем классе не совпадает с именем в родительском, будет выдана ошибка.
— Проверки типов аргументов: декоратор гарантирует, что типы аргументов совпадают с базовым методом.
#python #decorators
Полезность модуля math
Сложно переоценить пользу модуля
Его стоит импортировать тогда, когда вам необходимо работать с математикой, но не требуется избыточность модуля
Модуль
#math #pi #inf
Сложно переоценить пользу модуля
math
, если имеешь дело с какими-либо математическими функциями. Модуль представляет собой обширный функционал для работы с числами.Его стоит импортировать тогда, когда вам необходимо работать с математикой, но не требуется избыточность модуля
numpy
. Например, можно импортировать число pi
, как в примере.Модуль
math
обеспечивает доступ к некоторым популярным математическим функциям и константам, к тому же он является встроенным (не нужно делать установку через pip
).#math #pi #inf
Генераторы коллекций
В Python генераторы коллекций (или генераторы) представляют собой удобный способ создания итерируемых последовательностей данных без необходимости сохранять все элементы в памяти. Они могут использоваться для генерации значений на лету, что делает их полезными для работы с большими или бесконечными последовательностями данных.
Генераторы коллекций можно создать с использованием специального синтаксиса, который похож на генераторы списков, но вместо создания списка они создают генераторный объект. В примере на картинке мы создали генератор выражений. Генераторы выражений особенно полезны, когда вы работаете с большими объемами данных, так как они не сохраняют все элементы в памяти, а генерируют их по мере необходимости.
#python
В Python генераторы коллекций (или генераторы) представляют собой удобный способ создания итерируемых последовательностей данных без необходимости сохранять все элементы в памяти. Они могут использоваться для генерации значений на лету, что делает их полезными для работы с большими или бесконечными последовательностями данных.
Генераторы коллекций можно создать с использованием специального синтаксиса, который похож на генераторы списков, но вместо создания списка они создают генераторный объект. В примере на картинке мы создали генератор выражений. Генераторы выражений особенно полезны, когда вы работаете с большими объемами данных, так как они не сохраняют все элементы в памяти, а генерируют их по мере необходимости.
#python
Завтра — последний день приема заявок на бесплатное шестимесячное обучение IT-специальностям.
Для этого нужно пройти тест, который поможет определить подходит ли вам сфера айти и сможете ли вы принять участие в программе
Оставьте заявку, ответив на несколько вопросов, и получите возможность начать обучение бесплатно.
Для этого нужно пройти тест, который поможет определить подходит ли вам сфера айти и сможете ли вы принять участие в программе
Оставьте заявку, ответив на несколько вопросов, и получите возможность начать обучение бесплатно.
Асинхронно скачиваем файлы
Имея список ссылок на картинки, которые нужно скачать, мы можем это сделать используя простой цикл
Но в таких ситуациях как эта (скачивание огромного количества небольших файлов) распараллеливание задачи существенно ускорит процесс.
Для этого воспользуемся функцией ThreadPoolExecutor из стандартного пакета
Далее метод
Но будьте внимательны: так как скачивание файла — это IO-операция, такой метод не ускоряет вычисления кода. Он лишь позволяет запустить скачивание следующего файла, не дождавшись пока скачается предыдущий.
#python #threading
Имея список ссылок на картинки, которые нужно скачать, мы можем это сделать используя простой цикл
for
, тем самым скачав их последовательно одна за одной. Но в таких ситуациях как эта (скачивание огромного количества небольших файлов) распараллеливание задачи существенно ускорит процесс.
Для этого воспользуемся функцией ThreadPoolExecutor из стандартного пакета
concurrent.futures
. Она позволяет запустить нашу функцию, в нескольких екземплярах в параллельных потоках. В конструкторе необходимо указать максимальное количество потоков, которые будут одновременно запущены. Далее метод
.map(download, urls)
создает екземпляры нашей функции для скачивания файла, и раскидывает в них элементы списка urls
. Но будьте внимательны: так как скачивание файла — это IO-операция, такой метод не ускоряет вычисления кода. Он лишь позволяет запустить скачивание следующего файла, не дождавшись пока скачается предыдущий.
#python #threading
Упрощенная работа с JSON
Казалось бы, куда еще проще, но есть один интересный пакет
Основные примеры использования показаны на картинке, там нет ничего сложного. Метод
Вообще возможностей у пакета достаточно, поэтому он достоен изучения и применения в проектах. Подробнее советую почитать в документации.
#json #jmespath
Казалось бы, куда еще проще, но есть один интересный пакет
JMESpath
, который позволяет декларативно указать, как извлекать элементы из документа JSON. Основные примеры использования показаны на картинке, там нет ничего сложного. Метод
search
принимает паттерн, по которому требуется извлечь данные, а также словарь (который в общем-то похож на JSON). Вообще возможностей у пакета достаточно, поэтому он достоен изучения и применения в проектах. Подробнее советую почитать в документации.
#json #jmespath
База данных на минималках
Встроенный модуль
Доступ к данным осуществляется с помощью ключей, как и в случае со словарями. А метод
В документации заявляют, что такая база данных является "надежной". Но учитывая, что
#shelve
Встроенный модуль
shelve
позволяет сохранять и читать произвольные данные. Таким образом, можно сохранять любые Python объекты для дальнейшего использования. Доступ к данным осуществляется с помощью ключей, как и в случае со словарями. А метод
shelve.open
поддерживает протокол контекстного менеджера, то есть можно не вызывать метод close
. В документации заявляют, что такая база данных является "надежной". Но учитывая, что
shelve
написан на pickle
, его стоит использовать только в совсем маленьких проектах.#shelve
PyAutoGUI
PyAutoGUI позволяет Python управлять мышью и клавиатурой для автоматизации взаимодействия с другими приложениями. Пакет работает в Windows, macOS и Linux на Python 2 и 3.
Из ключевого функционала можно выделить следующее:
— Передвижение курсора и нажатие на кнопки мыши;
— Набор текста, например для заполнения форм;
— Скриншоты, поиск указанных изображений на экране (например, иконки) и нажатие на них;
— Поиск приложения на экране, изменение размера его окна, перемещение по экрану и т. д.
Основные функции показаны в примере на картинке выше, остальное — в документации проекта.
#pyautogui
PyAutoGUI позволяет Python управлять мышью и клавиатурой для автоматизации взаимодействия с другими приложениями. Пакет работает в Windows, macOS и Linux на Python 2 и 3.
Из ключевого функционала можно выделить следующее:
— Передвижение курсора и нажатие на кнопки мыши;
— Набор текста, например для заполнения форм;
— Скриншоты, поиск указанных изображений на экране (например, иконки) и нажатие на них;
— Поиск приложения на экране, изменение размера его окна, перемещение по экрану и т. д.
Основные функции показаны в примере на картинке выше, остальное — в документации проекта.
#pyautogui
Создание скриншотов с использованием модуля pyscreenshot
Модуль
Для захвата изображения используется метод
Этот модуль оказывается особенно полезным, например, при логировании скриптов, использующих
#python #pyscreenshot
Модуль
pyscreenshot
, обеспечивая кросс-платформенную функциональность, позволяет легко создавать скриншоты как всего экрана, так и его отдельных частей. Для работы этого модуля необходимо установить библиотеку Pillow
.Для захвата изображения используется метод
grab
, для его отображения – show
, а для сохранения – save
. В метод grab
можно также передать аргумент bbox
, чтобы ограничить захват только определенной областью экрана.Этот модуль оказывается особенно полезным, например, при логировании скриптов, использующих
Selenium
. Selenium
может открывать браузер и выполнять различные операции в нем, и использование pyscreenshot
позволяет создавать скриншоты для последующего анализа и отладки.#python #pyscreenshot
Хочешь присоединиться к высокотехнологичному вендору и производителю IT-инфраструктуры YADRO?
В команде тестирования базовой станции LTE в YADRO TELECOM актуальна вакансия:
1️⃣ Software Development Engineer in Test/SDET (LTE)
Ты сможешь участвовать в создании быстро развивающегося продукта, который нуждается в постоянном совершенствовании процессов и технических средств валидации.
Также есть вакансия в большой команде разработки флагманского продукта компании YADRO – TATLIN.UNIFIED:
2️⃣ Software engineer Go/Инженер-программист Go
Здесь ожидают уверенное владение GO и уделяют большое внимание правильной реализации задач, чтобы всё работало быстро и с оптимальным потреблением аппаратных ресурсов.
Что тебя ждёт ещё:
– достойная зарплата (размер обсуждается на собеседовании) и прозрачная система премий;
– обучение за счёт компании: учебный портал с курсами и лекциями от экспертов, дополнительное профессиональное обучение, изучение английского, участие в конференциях;
– возможность учиться у лучших специалистов индустрии, расти в рамках своей роли, а также участвовать во множестве различных проектов;
– личное участие в становлении процессов и продуктов, возможность увидеть результат своей работы;
– большое инженерное сообщество, которое постоянно развивается;
– гибридный или удалённый формат работы;
– ДМС со стоматологией с первого дня, консультации юристов, психологов, экспертов по ЗОЖ и управлению финансами;
– скидки для сотрудников, дополнительные day-off;
– комфортные офисы в Москве, Санкт-Петербурге, Нижнем Новгороде и Минске.
Откликайся по ссылкам и присоединяйся к YADRO!
В команде тестирования базовой станции LTE в YADRO TELECOM актуальна вакансия:
1️⃣ Software Development Engineer in Test/SDET (LTE)
Ты сможешь участвовать в создании быстро развивающегося продукта, который нуждается в постоянном совершенствовании процессов и технических средств валидации.
Также есть вакансия в большой команде разработки флагманского продукта компании YADRO – TATLIN.UNIFIED:
2️⃣ Software engineer Go/Инженер-программист Go
Здесь ожидают уверенное владение GO и уделяют большое внимание правильной реализации задач, чтобы всё работало быстро и с оптимальным потреблением аппаратных ресурсов.
Что тебя ждёт ещё:
– достойная зарплата (размер обсуждается на собеседовании) и прозрачная система премий;
– обучение за счёт компании: учебный портал с курсами и лекциями от экспертов, дополнительное профессиональное обучение, изучение английского, участие в конференциях;
– возможность учиться у лучших специалистов индустрии, расти в рамках своей роли, а также участвовать во множестве различных проектов;
– личное участие в становлении процессов и продуктов, возможность увидеть результат своей работы;
– большое инженерное сообщество, которое постоянно развивается;
– гибридный или удалённый формат работы;
– ДМС со стоматологией с первого дня, консультации юристов, психологов, экспертов по ЗОЖ и управлению финансами;
– скидки для сотрудников, дополнительные day-off;
– комфортные офисы в Москве, Санкт-Петербурге, Нижнем Новгороде и Минске.
Откликайся по ссылкам и присоединяйся к YADRO!