Красивый вывод таблиц
Недавно нам понадобилось логировать часть базы данных. И тут мы вспомнили про прекрасный модуль
Итак, имена столбцов задается с помощью атрибута
Но даже если вы не фанат командной строки, то иногда нужно сохранить отчет о работе вашей программы в текстовый файл. В таком случае можно сохранить саму таблицу, вызвав метод
#трюки #prettytable
Недавно нам понадобилось логировать часть базы данных. И тут мы вспомнили про прекрасный модуль
prettytable
, который позволяет красиво выводить таблицы.Итак, имена столбцов задается с помощью атрибута
table.field_names
. А добавлять строки с данными в таблицу можно методом table.add_row([])
, передавая туда список элементов.Но даже если вы не фанат командной строки, то иногда нужно сохранить отчет о работе вашей программы в текстовый файл. В таком случае можно сохранить саму таблицу, вызвав метод
table.get_string()
.#трюки #prettytable
👍6
16 октября пройдет митап about:cloud — infrastructure
Неформальная встреча для тех, кто каждый день работает с инфраструктурой и сетевыми сервисами.
В программе:
— Управление тысячами выделенных серверов;
— Развитие и устройство NFS;
— Headless в VPC;
— Автоматизация приватных соединений;
— Опыт работы с малыми S3-инсталляциями.
Митап — это не только доклады, но и живое общение со спикерами и коллегами по индустрии.
Формат: офлайн в Москве + онлайн для участников из любых городов
Регистрируйтесь, чтобы первыми узнать об изменениях сервисов от разработчиков Yandex Cloud.
Неформальная встреча для тех, кто каждый день работает с инфраструктурой и сетевыми сервисами.
В программе:
— Управление тысячами выделенных серверов;
— Развитие и устройство NFS;
— Headless в VPC;
— Автоматизация приватных соединений;
— Опыт работы с малыми S3-инсталляциями.
Митап — это не только доклады, но и живое общение со спикерами и коллегами по индустрии.
Формат: офлайн в Москве + онлайн для участников из любых городов
Регистрируйтесь, чтобы первыми узнать об изменениях сервисов от разработчиков Yandex Cloud.
🔥1
Понимание различий между операторами сравнения == и is
Множество разработчиков сталкиваются с трудностями в отличии двух операторов сравнения:
Оператор
В
#python
Множество разработчиков сталкиваются с трудностями в отличии двух операторов сравнения:
==
и is
, что может привести к неожиданным ошибкам в коде.Оператор
==
сравнивает значения двух объектов, чтобы определить их равенство. В отличие от него, оператор is
проверяет, ссылаются ли две переменные на один и тот же объект в памяти, тем самым проверяя их идентичность.В
Python
из соображений эффективности происходит кэширование небольших чисел и коротких строк, что может привести к путанице и неочевидным результатам при использовании этих операторов.#python
😱6👍4👎1
Возврат нескольких значений из функции
Знаете ли вы, что можно осуществлять возврат нескольких значений из функции? Вот как это сделать. Ознакомьтесь с приведенным выше примером кода.
#python
Знаете ли вы, что можно осуществлять возврат нескольких значений из функции? Вот как это сделать. Ознакомьтесь с приведенным выше примером кода.
#python
👍5❤3
Полезные функции модуля itertools
Модуль
Давайте рассмотрим некоторые полезные функции из этого модуля:
1.
2.
3.
4.
5.
И это далеко не все функции, доступные в модуле
Модуль
itertools
- инструмент в Python
для работы с итерируемыми объектами. Он предоставляет различные функции для создания и манипулирования итераторами, что делает его незаменимым инструментом для разработчиков.Давайте рассмотрим некоторые полезные функции из этого модуля:
1.
itertools.count()
: Эта функция создает бесконечный итератор, который генерирует последовательность чисел, начиная с заданного значения. Это удобно использовать, например, при создании уникальных идентификаторов.2.
itertools.cycle()
: Эта функция создает итератор, который бесконечно повторяет элементы из исходной последовательности. Это может быть полезно, когда вам нужно обрабатывать данные циклически.3.
itertools.islice()
: С помощью этой функции можно получить срез элементов из итератора, подобно срезу для списков. Это позволяет работать с большими итерируемыми объектами без необходимости загрузки их в память целиком.4.
itertools.chain()
: Эта функция объединяет несколько итерируемых объектов в один, что упрощает итерацию по ним как по одному объекту.5.
itertools.groupby()
: Эта функция позволяет группировать элементы итерируемого объекта на основе заданного ключа. Это особенно полезно при анализе и обработке данных.И это далеко не все функции, доступные в модуле
itertools
. Он предоставляет множество возможностей для более эффективной итерации и манипуляции данными.🔥5❤1
Декоратор override
Это может быть полезно для:
— Повышения читабельности кода, так как сразу видно, какие методы переопределены.
— Выявления ошибок: если имя метода в дочернем классе не совпадает с именем в родительском, будет выдана ошибка.
— Проверки типов аргументов: декоратор гарантирует, что типы аргументов совпадают с базовым методом.
#python #decorators
@override
используется для переопределения методов в классах-наследниках. Он позволяет указать, что метод в подклассе переопределяет метод базового класса.Это может быть полезно для:
— Повышения читабельности кода, так как сразу видно, какие методы переопределены.
— Выявления ошибок: если имя метода в дочернем классе не совпадает с именем в родительском, будет выдана ошибка.
— Проверки типов аргументов: декоратор гарантирует, что типы аргументов совпадают с базовым методом.
#python #decorators
👍6
Читаем текст с картинки используя Tesseract от Google
Чтобы извлечь текст из изображения, используйте метод
Рекомендуется использовать библиотеку
Пример кода:
#python #pytesseract
Google
разработал систему Tesseract
для извлечения текста из изображений через оптическое распознавание символов.Pytesseract
- это удобная оболочка для системы Tesseract
, облегчающая её использование.Чтобы извлечь текст из изображения, используйте метод
image_to_string
. Для работы с русским текстом укажите аргумент lang
как 'rus'
.Рекомендуется использовать библиотеку
pillow
для открытия изображений, хотя можно также просто указать путь к файлу.Пример кода:
from PIL import Image
import pytesseract
# Открываем изображение с помощью Pillow
image = Image.open('image.jpg')
# Используем pytesseract для извлечения текста
text = pytesseract.image_to_string(image, lang='rus')
print(text)
#python #pytesseract
👍8❤1
Функция reduce
В
Примером работы
#python #functools
В
Python
модуль functools
открывает доступ к функциональным возможностям языка. Одной из замечательных функций в этом модуле является reduce
, которая эффективно уменьшает коллекцию данных, последовательно применяя к ним заданную функцию и сохраняя промежуточные результаты.Примером работы
reduce
может служить последовательное умножение чисел: сначала 1 умножается на 2, затем полученный результат умножается на 3, и так далее.#python #functools
👍5
Валидаторы данных
Как правило, разработчики пишут регулярные выражения для обработки специфических строк. Но для таких данных как, почта или ссылка, изобретать велосипед не нужно.
Модуль
Помимо этого,
#python #validators
Как правило, разработчики пишут регулярные выражения для обработки специфических строк. Но для таких данных как, почта или ссылка, изобретать велосипед не нужно.
Модуль
validators
позволяет использовать уже готовые валидаторы для самых распространенных задач. В примере можете как раз увидеть валидацию почты и ссылок.Помимо этого,
validators
позволяет также работать с ipv4
, ipv6
, mac
адресами и многим другим. В итоге, имеем лаконичный и простой модуль с хорошим функционалом.#python #validators
👍5❤1
Возвращаем значение по указанному ключу с помощью метода setdefault()
Метод
Метод
— Ключ, по которому необходимо получить значение.
— Значение по умолчанию, которое будет добавлено в словарь, если ключ отсутствует.
Если ключ присутствует в словаре, метод возвращает значение, связанное с этим ключом. Если ключ отсутствует в словаре, метод добавляет ключ в словарь со значением по умолчанию, а затем возвращает это значение.
Метод
setdefault()
в Python возвращает значение по указанному ключу из словаря. Если ключ отсутствует в словаре, метод добавляет ключ в словарь со значением по умолчанию, а затем возвращает это значение.Метод
setdefault()
имеет два параметра:— Ключ, по которому необходимо получить значение.
— Значение по умолчанию, которое будет добавлено в словарь, если ключ отсутствует.
Если ключ присутствует в словаре, метод возвращает значение, связанное с этим ключом. Если ключ отсутствует в словаре, метод добавляет ключ в словарь со значением по умолчанию, а затем возвращает это значение.
👍3
RabbitMQ: Брокерская система сообщений для асинхронной обработки данных
Для взаимодействия с
Ключевые характеристики
1. Асинхронность:
2. Маршрутизация:
3. Надежность:
4. Поддержка множества протоколов:
RabbitMQ
- это мощная и надежная брокерская система сообщений, которая предназначена для обеспечения асинхронного обмена данными между различными компонентами вашего приложения. Эта брокерская система стала широко используемой в индустрии благодаря своей производительности, надежности и гибкости.Для взаимодействия с
RabbitMQ
на языке программирования Python часто используется библиотека pika
. Pika
предоставляет удобный интерфейс для работы с RabbitMQ
, позволяя отправлять и принимать сообщения в очереди.Ключевые характеристики
RabbitMQ
:1. Асинхронность:
RabbitMQ
предоставляет механизм асинхронной обработки сообщений. Это позволяет разным частям вашего приложения обмениваться данными, не блокируя друг друга.2. Маршрутизация:
RabbitMQ
обеспечивает гибкую маршрутизацию сообщений с использованием обменников (exchanges)
и очередей (queues)
. Это позволяет точно определить, какие сообщения должны быть отправлены в какие очереди.3. Надежность:
RabbitMQ
обеспечивает сохранность данных даже в случае сбоев. Он поддерживает различные стратегии обработки ошибок и перенаправления сообщений.4. Поддержка множества протоколов:
RabbitMQ
поддерживает несколько протоколов связи, включая AMQP (Advanced Message Queuing Protocol)
и MQTT (Message Queuing Telemetry Transport)
. Это делает его универсальным и пригодным для различных типов приложений.🔥3👍2