Упрощенная работа с 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!
Обрезаем фотографии с помощью Python
Pillow также может использоваться для обрезки изображения, при этом вы можете получить производный прямоугольник выбранного изображения, указав координаты, по которым преобразовать изображение.
Координаты обрезанной поверхности представлены диагональными координатами. При этом первые две точки находятся (x, y) от верхней левой диагональной точки, а следующие две точки (x2, y2) также являются диагональной точкой снизу справа.
Фотографии до и после изменения изображения представлены в посте выше.
Pillow также может использоваться для обрезки изображения, при этом вы можете получить производный прямоугольник выбранного изображения, указав координаты, по которым преобразовать изображение.
Координаты обрезанной поверхности представлены диагональными координатами. При этом первые две точки находятся (x, y) от верхней левой диагональной точки, а следующие две точки (x2, y2) также являются диагональной точкой снизу справа.
Фотографии до и после изменения изображения представлены в посте выше.
Создание дочернего процесса
Метод
Кстати, получается интересный случай, в коде примера выполняется и блок
#os #fork #процессы
Метод
os.fork()
создаёт дочерний процесс в том же месте кода, вызывая системную функцию fork()
, и возвращает PID (Process Identifier), который равен PID дочернего процесса в родительском процессе и нулю в новом.Кстати, получается интересный случай, в коде примера выполняется и блок
if
, и else
. Если не знать про os.fork()
и посмотреть вывод подобного кода, то возникнет много вопросов.#os #fork #процессы
Можно ли за 4 года стать хорошим фулстек-разработчиком с дипломом престижного вуза, готовым портфолио и сильной теоретической базой? В совместном онлайн-бакалавриате НИУ ВШЭ и Нетологии «Программные системы и автоматизация процессов разработки» готовят как раз таких специалистов.
На первых курсах вы изучите базовые математические и гуманитарные предметы, основы программирования и профильные дисциплины по фулстек-разработке. А с третьего курса выберете углублённый трек: руководитель командой разработки или DevOps-инженер. По итогу обучения освоите 4 языка программирования: Java, Python, JavaScript, Go.
Вас ждёт сильное студенческое комьюнити, постоянная практика, хакатоны и стажировки.
А ещё — все бонусы очной формы обучения: отсрочка от армии, льготы на проезд, доступ к библиотеке, привилегии при посещении театров, льготный кредит на образование.
Получите диплом, который поможет строить карьеру в сильных IT-командах.
Подробнее: https://netolo.gy/dm9X
Реклама. ООО "Нетология". Erid 2VSb5yPVEQx
На первых курсах вы изучите базовые математические и гуманитарные предметы, основы программирования и профильные дисциплины по фулстек-разработке. А с третьего курса выберете углублённый трек: руководитель командой разработки или DevOps-инженер. По итогу обучения освоите 4 языка программирования: Java, Python, JavaScript, Go.
Вас ждёт сильное студенческое комьюнити, постоянная практика, хакатоны и стажировки.
А ещё — все бонусы очной формы обучения: отсрочка от армии, льготы на проезд, доступ к библиотеке, привилегии при посещении театров, льготный кредит на образование.
Получите диплом, который поможет строить карьеру в сильных IT-командах.
Подробнее: https://netolo.gy/dm9X
Реклама. ООО "Нетология". Erid 2VSb5yPVEQx
Слоты в классах
По умолчанию в Python в классах используется словарь
В случаях, когда мы сразу точно знаем все атрибуты, используемые в классе, мы можем воспользоваться атрибутом
#class #slots
По умолчанию в Python в классах используется словарь
__dict__
для хранения атрибутов, который создается по умолчанию при создании экземпляра класса. Данная особенность позволяет динамически в рантайме добавлять атрибуты, но от сюда появляются соответствующие проблемы с производительностью. В случаях, когда мы сразу точно знаем все атрибуты, используемые в классе, мы можем воспользоваться атрибутом
__slots__
, который позволяет задать ограниченный список аргументов для класса. В этом случае словарь __dict__
не будет создаваться, что позволит сэкономить память и поднять производительность.#class #slots
Indico
Indico — это мощная библиотека Python для извлечения информации из неструктурированных текстов, изображений и PDF-файлов. Она позволяет вам выполнять задачи обработки естественного языка (NLP), компьютерного зрения (CV) и машинного обучения (ML) с помощью простых и понятных API.
https://pypi.org/project/indico/
Indico — это мощная библиотека Python для извлечения информации из неструктурированных текстов, изображений и PDF-файлов. Она позволяет вам выполнять задачи обработки естественного языка (NLP), компьютерного зрения (CV) и машинного обучения (ML) с помощью простых и понятных API.
https://pypi.org/project/indico/
Редирект вывода программы
В
Контекстный менеджер принимает аргумент, в котором мы можем указать, куда должен переправляться весь вывод в последующем блоке.
Таким образом, данные из
Убедится в этом можем, открыв файл заново и прочитав оттуда данные.
#contextlib
В
contextlib
есть еще один прикольный контекстный менеджер — redirect_stdout
, позволяющий перенаправить стандартный вывод программы.Контекстный менеджер принимает аргумент, в котором мы можем указать, куда должен переправляться весь вывод в последующем блоке.
Таким образом, данные из
print()
в контекстом менеджере будут переправлены в открытый ранее файл, так как мы его передали в аргумент redirect_stdout
.Убедится в этом можем, открыв файл заново и прочитав оттуда данные.
#contextlib
Промпт-инженеринг — новый хайп или перспективная профессия?
Рассказываем про направление с большим потенциалом и маленькой конкуренцией на рынке на нашей бесплатной лекции.
По итогам эфира вы узнаете:
— Кто такой промт-инженер и чем он занимается;
— Как интегрировать скиллы промт-инжинеринга в работу, если вы работаете в IT;
— Кому в действительности нужны его услуги и какие результаты это даст;
— Сколько платят промт-инженеру в России и мире;
— Кто может стать промт-инженером и какой порог входа;
Кликай на ссылку и забирай подробную информацию вместе с классными бонусами.
erid: LjN8KDCF3
ООО Зерокодер, ИНН 9715401631
Рассказываем про направление с большим потенциалом и маленькой конкуренцией на рынке на нашей бесплатной лекции.
По итогам эфира вы узнаете:
— Кто такой промт-инженер и чем он занимается;
— Как интегрировать скиллы промт-инжинеринга в работу, если вы работаете в IT;
— Кому в действительности нужны его услуги и какие результаты это даст;
— Сколько платят промт-инженеру в России и мире;
— Кто может стать промт-инженером и какой порог входа;
Кликай на ссылку и забирай подробную информацию вместе с классными бонусами.
erid: LjN8KDCF3
ООО Зерокодер, ИНН 9715401631
Altair
Библиотека Altair — это декларативная библиотека для создания статистических визуализаций. Она основана на спецификации Vega-Lite и позволяет создавать сложные графики с минимальным количеством кода.
Altair предоставляет простой синтаксис для создания графиков, а также интегрируется с Jupyter Notebook и JupyterLab для интерактивного отображения графиков.
Результат работы кода — столбчатая диаграмма, отображающая цены на разные виды фруктов.
Если вы хотите сохранить график в виде файла, вы можете использовать метод
*На втором изображении представлен результат работы программы.
Библиотека Altair — это декларативная библиотека для создания статистических визуализаций. Она основана на спецификации Vega-Lite и позволяет создавать сложные графики с минимальным количеством кода.
Altair предоставляет простой синтаксис для создания графиков, а также интегрируется с Jupyter Notebook и JupyterLab для интерактивного отображения графиков.
Результат работы кода — столбчатая диаграмма, отображающая цены на разные виды фруктов.
Если вы хотите сохранить график в виде файла, вы можете использовать метод
save()
.*На втором изображении представлен результат работы программы.
Итерируемый счетчик
Еще один классный итератор из
В аргументах можно задать значения
Обычно
#itertools
Еще один классный итератор из
itertools
— это count
, который генерирует бесконечную последовательность чисел.В аргументах можно задать значения
start
и step
: первый отвечает за начальное значение, а второе за шаг, как и в range
.Обычно
count
редко используют с циклом for
. Чаще можно встретить случаи с функциями типа zip
или map
.#itertools
Протоколы
Термины "протокол итератора" или "протокол дескрипторов" уже привычны и используются давно. Но теперь можно описывать протоколы в виде кода и проверять их соответствие на этапе статического анализа.
Протокол описывается как обычный класс, наследующийся от
Хоть это и не совсем интерфейсы, но все же классная штука. Еще важно, что протоколы, как и все остальные фишки аннотаций типов, используются в основном со статически типизированным
#typing #аннотации
Термины "протокол итератора" или "протокол дескрипторов" уже привычны и используются давно. Но теперь можно описывать протоколы в виде кода и проверять их соответствие на этапе статического анализа.
Протокол описывается как обычный класс, наследующийся от
Protocol
. Он может иметь методы (в том числе с реализацией) и поля. Реальные классы, реализующие протокол могут наследоваться от него, но это не обязательно, как показано в примере. Хоть это и не совсем интерфейсы, но все же классная штука. Еще важно, что протоколы, как и все остальные фишки аннотаций типов, используются в основном со статически типизированным
mypy
. #typing #аннотации
Пушка: с 1 августа для россиян открыты бесплатные 6-месячные IT-курсы! Чтобы проверить, доступно ли обучение вам, нужно:
• Перейти по ссылке
• Заполнить анкету
• Пройти тестирование на профпригодность
• Сразу получить результаты и узнать подходящую профессию!
Приём заявок продлится до конца месяца — количество льготных мест ограничено.
• Перейти по ссылке
• Заполнить анкету
• Пройти тестирование на профпригодность
• Сразу получить результаты и узнать подходящую профессию!
Приём заявок продлится до конца месяца — количество льготных мест ограничено.
Работаем с картинками в Python
Библиотека Pillow — это очень мощный, быстрый и удобный инструмент для обработки графики в Python.
В сегодняшнем примере мы применим ее для конвертации картинки в черно-белую, обратим цвета, вертикально отзеркалим и сохраним в файл.
Метод
Библиотека Pillow — это очень мощный, быстрый и удобный инструмент для обработки графики в Python.
В сегодняшнем примере мы применим ее для конвертации картинки в черно-белую, обратим цвета, вертикально отзеркалим и сохраним в файл.
Метод
Image.open('resources/img/cat.jpg')
считывает картинку из папки. img.convert('L')
трансформирует картинку в черно-белую. ImageOps.invert(image)
обращает цвета. img.transpose(Image.FLIP_LEFT_RIGHT)
вертикально отзеркаливает картинку. img.save('grayscale_cat.jpg')
сохранит картинку на диске.