Получаем текст с картинки
У Google есть система Tesseract, которая позволяет парсить текст с картинок с помощью оптического распознавания символов.
И в качестве обертки над их системой, был создан пакет pytesseract, который максимально удобно и легко использовать.
Для того, чтобы получить текст с картинки, нужно вызвать метод image_to_string. Если вас интересует текст на русском, то следует указать аургмент lang как 'rus'.
Еще важно, что для открытия картинок рекомендуется использовать pillow, хоть и имеется возможность просто указать путь к файлу в виде строки.
Подписывайтесь на канал 👉@pythonofff
У Google есть система Tesseract, которая позволяет парсить текст с картинок с помощью оптического распознавания символов.
И в качестве обертки над их системой, был создан пакет pytesseract, который максимально удобно и легко использовать.
Для того, чтобы получить текст с картинки, нужно вызвать метод image_to_string. Если вас интересует текст на русском, то следует указать аургмент lang как 'rus'.
Еще важно, что для открытия картинок рекомендуется использовать pillow, хоть и имеется возможность просто указать путь к файлу в виде строки.
Подписывайтесь на канал 👉@pythonofff
👍8
Для чего используется *args в Python?
В Python форма *args с одной звездочкой используется в качестве параметра для отправки функциями списка аргументов, которые не являются ключевыми словами с переменной длиной. Стоит отметить, что звездочка (*) является важным элементом, так как args представляет собой общепринятую идиому, хотя она и не принуждается к использованию языком.
Подписывайтесь на канал 👉@pythonofff
В Python форма *args с одной звездочкой используется в качестве параметра для отправки функциями списка аргументов, которые не являются ключевыми словами с переменной длиной. Стоит отметить, что звездочка (*) является важным элементом, так как args представляет собой общепринятую идиому, хотя она и не принуждается к использованию языком.
Подписывайтесь на канал 👉@pythonofff
👍4
Удобная работа с файловыми путями
В стандартной библиотеке есть максимально удобный пакет pathlib, позволяющий осуществлять различную работу с файловыми путями.
Для представления пути к файлу есть класс Path, с объектами которого уже можно производить операции. Например, методы exists() и is_dir() проверяют, существует ли файл и является ли он директорией.
Но самой классной фичей является замена os.path.join() на более удобный и элегантный вариант с использованием слэшей, как показано на картинке.
Таким образом, пакет pathlib может стать частичной заменой os в некоторых случаях при работе с файловыми путями.
Подписывайтесь на канал 👉@pythonofff
В стандартной библиотеке есть максимально удобный пакет pathlib, позволяющий осуществлять различную работу с файловыми путями.
Для представления пути к файлу есть класс Path, с объектами которого уже можно производить операции. Например, методы exists() и is_dir() проверяют, существует ли файл и является ли он директорией.
Но самой классной фичей является замена os.path.join() на более удобный и элегантный вариант с использованием слэшей, как показано на картинке.
Таким образом, пакет pathlib может стать частичной заменой os в некоторых случаях при работе с файловыми путями.
Подписывайтесь на канал 👉@pythonofff
👍10
Регистрация функции с помощью декораторов в Python
Самый простой тип декоратора используется для регистрации функции в качестве обработчика события. Данный шаблон очень распространен в приложениях на Python, так как он позволяет двум или более подсистемам взаимодействовать, не зная ничего друг о друге. Данный процесс известен как «несвязанный» дизайн.
Подписывайтесь на канал 👉@pythonofff
Самый простой тип декоратора используется для регистрации функции в качестве обработчика события. Данный шаблон очень распространен в приложениях на Python, так как он позволяет двум или более подсистемам взаимодействовать, не зная ничего друг о друге. Данный процесс известен как «несвязанный» дизайн.
Подписывайтесь на канал 👉@pythonofff
👍6
Отправляем электронные письма
SMTP (Simple Mail Transfer Protocol) — это протокол, позволяющий отправлять электронные письма. В стандартной библиотеке есть пакет smtplib, реализующий его поведение.
Для подключения к серверу будем использовать класс SMTP_SSL, который включает в себя и шифрование. В его аргументы передаем адрес сервера и порт. Авторизация происходит с помощью метода login, в который передаем соответственно логин и пароль.
Отправлять письма можно одноименным методом sendmail, который принимает адреса отправителя и получается, а также сам текст. В конце программы следует закрывать соединение с помощью метода quit().
Но здесь еще следует обратить внимание на то, что некоторые почтовые сервисы могут не разрешить так сразу подключаться к их серверам и производить операции. В нашем случае пришлось немного повоевать с Gmail.
Подписывайтесь на канал 👉@pythonofff
SMTP (Simple Mail Transfer Protocol) — это протокол, позволяющий отправлять электронные письма. В стандартной библиотеке есть пакет smtplib, реализующий его поведение.
Для подключения к серверу будем использовать класс SMTP_SSL, который включает в себя и шифрование. В его аргументы передаем адрес сервера и порт. Авторизация происходит с помощью метода login, в который передаем соответственно логин и пароль.
Отправлять письма можно одноименным методом sendmail, который принимает адреса отправителя и получается, а также сам текст. В конце программы следует закрывать соединение с помощью метода quit().
Но здесь еще следует обратить внимание на то, что некоторые почтовые сервисы могут не разрешить так сразу подключаться к их серверам и производить операции. В нашем случае пришлось немного повоевать с Gmail.
Подписывайтесь на канал 👉@pythonofff
👍6🤔3
Обзор простых декораторов в Python
Прежде чем мы углубимся в новую территорию, давайте рассмотрим, как работают простые декораторы из первого урока. Ниже представлен пример, введенный нами в оболочку IDLE Python. Попробуйте поэкспериментировать, запустите IDLE оболочку и введите код сами.
Подписывайтесь на канал 👉@pythonofff
Прежде чем мы углубимся в новую территорию, давайте рассмотрим, как работают простые декораторы из первого урока. Ниже представлен пример, введенный нами в оболочку IDLE Python. Попробуйте поэкспериментировать, запустите IDLE оболочку и введите код сами.
Подписывайтесь на канал 👉@pythonofff
👍5❤2
Бесконечность
Вообще float является крайне интересным типом данных и не перестает удивлять своими особенностями. Про значение Not a Number мы уже писали, а вот сегодня поговорим про infinity.
Строковые литералы 'inf' и 'infinity' можно конвертировать в float, и в результате получается значение бесконечности. Для отрицательной "бесконечности" нужно поставить знак минуса перед словом.
Такой прием может быть полезен в коде, где требуется хранить в переменной самое большое или самое маленькое числовое значение для дальнейшего сравнения.
Подписывайтесь на канал 👉@pythonofff
Вообще float является крайне интересным типом данных и не перестает удивлять своими особенностями. Про значение Not a Number мы уже писали, а вот сегодня поговорим про infinity.
Строковые литералы 'inf' и 'infinity' можно конвертировать в float, и в результате получается значение бесконечности. Для отрицательной "бесконечности" нужно поставить знак минуса перед словом.
Такой прием может быть полезен в коде, где требуется хранить в переменной самое большое или самое маленькое числовое значение для дальнейшего сравнения.
Подписывайтесь на канал 👉@pythonofff
👍8
Создание декоратора с аргументами
Здесь видно, что декоратор my_decorator не принимает никаких аргументов, во время декорирования функции, но имплементация этого декоратора принимает аргумент f, через который Python передает ссылку на декорированную функцию.
Подписывайтесь на канал 👉@pythonofff
Здесь видно, что декоратор my_decorator не принимает никаких аргументов, во время декорирования функции, но имплементация этого декоратора принимает аргумент f, через который Python передает ссылку на декорированную функцию.
Подписывайтесь на канал 👉@pythonofff
👍4
Получаем данные о системе
Кроссплатформенная библиотека psutil позволяет получать информацию о процессоре, памяти, диске, сети, датчиках и запущенных процессах в системе. Примеры базового использования показаны на картинке.
Если говорить про практические применение, psutil полезен в основном для мониторинга системы, ограничения ресурсов процессов и управления запущенными процессами.
Помимо привычных Windows, MacOS и Linux, библиотека также поддерживает системы FreeBSD, OpenBSD, NetBSD, Sun Solaris и AIX.
Подписывайтесь на канал 👉@pythonofff
Кроссплатформенная библиотека psutil позволяет получать информацию о процессоре, памяти, диске, сети, датчиках и запущенных процессах в системе. Примеры базового использования показаны на картинке.
Если говорить про практические применение, psutil полезен в основном для мониторинга системы, ограничения ресурсов процессов и управления запущенными процессами.
Помимо привычных Windows, MacOS и Linux, библиотека также поддерживает системы FreeBSD, OpenBSD, NetBSD, Sun Solaris и AIX.
Подписывайтесь на канал 👉@pythonofff
👍5
Нужны ли декораторам аргументы?
Есть множество проблем, которые можно решить с помощью декораторов, и некоторые из них были рассмотрены в предыдущих уроках данного курса. Однако в некоторых ситуациях могут пригодиться и аргументы. Рассмотрим в качестве примера знаменитый декоратор app.route из веб-фреймворка Flask
Подписывайтесь на канал 👉@pythonofff
Есть множество проблем, которые можно решить с помощью декораторов, и некоторые из них были рассмотрены в предыдущих уроках данного курса. Однако в некоторых ситуациях могут пригодиться и аргументы. Рассмотрим в качестве примера знаменитый декоратор app.route из веб-фреймворка Flask
Подписывайтесь на канал 👉@pythonofff
Только до конца дня дарим 4 курса по 🎯 IT за 0 руб вместо 25.000 руб!
💯 Не упустите возможность получить профессию мечты!
Забирай свой набор IT курсов по ссылке 🤝
💯 Не упустите возможность получить профессию мечты!
Забирай свой набор IT курсов по ссылке 🤝
💩3❤🔥1
Скачиваем вебсайты целиком
Максимально простой, но при этом мощный пакет pywebcopy поможет вам клонировать отдельные веб-страницы или даже целые сайты.
Функция save_webpage скачивает страницу по указанной ссылке, в аргументы также можно передать путь, куда сохранить результат.
А вот save_website дает возможность скачать целый вебсайт рекурсивно. Например, если сайт представляет из себя блог, то скрипт скачет все статьи, которые есть на сайте.
Но здесь надо быть аккуратнее, подобная рекурсивная загрузка отправит много запросов к серверу и может сильно нагрузить его, если на сайте много страниц.
Подписывайтесь на канал 👉@pythonofff
Максимально простой, но при этом мощный пакет pywebcopy поможет вам клонировать отдельные веб-страницы или даже целые сайты.
Функция save_webpage скачивает страницу по указанной ссылке, в аргументы также можно передать путь, куда сохранить результат.
А вот save_website дает возможность скачать целый вебсайт рекурсивно. Например, если сайт представляет из себя блог, то скрипт скачет все статьи, которые есть на сайте.
Но здесь надо быть аккуратнее, подобная рекурсивная загрузка отправит много запросов к серверу и может сильно нагрузить его, если на сайте много страниц.
Подписывайтесь на канал 👉@pythonofff
👍5🍌1
inspect добро пожаловать за кулисы
Модуль inspect пригодится вам для использования того, что происходит за кулисами в Python. Вы так же можете вызывать его методы в них же!
Снизу пригодится метод inspect.getsource() для вывода его собственного исходного кода. Еще используется метод inspect.getmodule() для вывода модуля, в котором его утвердили.
Подписывайтесь на канал 👉@pythonofff
Модуль inspect пригодится вам для использования того, что происходит за кулисами в Python. Вы так же можете вызывать его методы в них же!
Снизу пригодится метод inspect.getsource() для вывода его собственного исходного кода. Еще используется метод inspect.getmodule() для вывода модуля, в котором его утвердили.
Подписывайтесь на канал 👉@pythonofff
👍3
Работаем с QIWI кошельком
У QIWI есть открытое API, которое позволяет совершать всевозможные операции со своим кошельком. Но первым делом необходимо получить токен, чтобы пользоваться этим API.
Для работы с QIWI есть удобный пакет pyqiwi. Класс Wallet реализует представление кошелька, в аргументы конструктора передаем полученный ранее токен и свой номер телефона. Проверить баланс можно методом balance().
Отправить деньги на другой кошелек можно с помощью метода send(), в который передаем идентификатор провайдера, номер телефона получателя, сумму платежа и комментарий.
Подписывайтесь на канал 👉@pythonofff
У QIWI есть открытое API, которое позволяет совершать всевозможные операции со своим кошельком. Но первым делом необходимо получить токен, чтобы пользоваться этим API.
Для работы с QIWI есть удобный пакет pyqiwi. Класс Wallet реализует представление кошелька, в аргументы конструктора передаем полученный ранее токен и свой номер телефона. Проверить баланс можно методом balance().
Отправить деньги на другой кошелек можно с помощью метода send(), в который передаем идентификатор провайдера, номер телефона получателя, сумму платежа и комментарий.
Подписывайтесь на канал 👉@pythonofff
👍5❤1
pprint - Стандартная функция Python
Print() делает своё дело. Но если попытаться вывести большой вложенный объект, результат будет выглядеть не так уж и приятно.
Тут на помощь приходит модуль из стандартной библиотеки pprint (pretty print). С его помощью можно выводить объекты со сложной структурой в читабельном виде.
Подписывайтесь на канал 👉@pythonofff
Print() делает своё дело. Но если попытаться вывести большой вложенный объект, результат будет выглядеть не так уж и приятно.
Тут на помощь приходит модуль из стандартной библиотеки pprint (pretty print). С его помощью можно выводить объекты со сложной структурой в читабельном виде.
Подписывайтесь на канал 👉@pythonofff
👍4
Логические all и any
Одна из многих причин, почему Python является таким популярным языком, заключается в том, что он читаем и выразителен. Предлагаю взглянуть на прикрепленный код.
Функция any возвращает значение True, если хотя бы одно из переданных утверждений верно, all – в случае, если все верны.
На мой взгляд, эти две функции заслуживают отдельного внимания всего лишь из-за их простоты в использовании.
Подписывайтесь на канал 👉@pythonofff
Одна из многих причин, почему Python является таким популярным языком, заключается в том, что он читаем и выразителен. Предлагаю взглянуть на прикрепленный код.
Функция any возвращает значение True, если хотя бы одно из переданных утверждений верно, all – в случае, если все верны.
На мой взгляд, эти две функции заслуживают отдельного внимания всего лишь из-за их простоты в использовании.
Подписывайтесь на канал 👉@pythonofff
👍7
Аннотации типов
Позволяет ускорить процесс разработки. Но, мало что раздражает так сильно, как ошибка времени выполнения, возникшая из-за простого несовпадения типа.
К тому же они позволяют использовать инструменты для проверки типов, чтобы отлавливать ошибки TypeError.
Подписывайтесь на канал 👉@pythonofff
Позволяет ускорить процесс разработки. Но, мало что раздражает так сильно, как ошибка времени выполнения, возникшая из-за простого несовпадения типа.
К тому же они позволяют использовать инструменты для проверки типов, чтобы отлавливать ошибки TypeError.
Подписывайтесь на канал 👉@pythonofff
👍3
Редактируем видео
Пакет moviepy позволяет обрезать и склеивать видео, добавлять видеоэффекты, а также редактировать звук.
В целом, с пакетом разбораться не сложно, базовое использование показано на картинке. В примере мы открываем два видео, склеиваем их в одно, обрезаем полученный клип, уменьшаем громкость звука и в конце сохраняем результат.
Здесь еще важно отметить, что запуск и выполнение скриптов с обработкой видео может занять относительно большое время.
Такой пакет полезен в случаях, когда требуется обработать очень много видео по одному и тому же принципу.
Подписывайтесь на канал 👉@pythonofff
Пакет moviepy позволяет обрезать и склеивать видео, добавлять видеоэффекты, а также редактировать звук.
В целом, с пакетом разбораться не сложно, базовое использование показано на картинке. В примере мы открываем два видео, склеиваем их в одно, обрезаем полученный клип, уменьшаем громкость звука и в конце сохраняем результат.
Здесь еще важно отметить, что запуск и выполнение скриптов с обработкой видео может занять относительно большое время.
Такой пакет полезен в случаях, когда требуется обработать очень много видео по одному и тому же принципу.
Подписывайтесь на канал 👉@pythonofff
👍7
PUT
Иногда нам часто приходится обновлять существующие данные в API. Используя запрос PUT, мы можем обновить данные полностью. Это означает, что, когда мы делаем запрос PUT, он заменяет все старые данные новыми.
В запросе POST мы создали новый продукт с идентификатором 21. Обновив старый продукт на новый, сделав запрос PUT к конечной точке products/<product_id>.
Подписывайтесь на канал 👉@pythonofff
Иногда нам часто приходится обновлять существующие данные в API. Используя запрос PUT, мы можем обновить данные полностью. Это означает, что, когда мы делаем запрос PUT, он заменяет все старые данные новыми.
В запросе POST мы создали новый продукт с идентификатором 21. Обновив старый продукт на новый, сделав запрос PUT к конечной точке products/<product_id>.
Подписывайтесь на канал 👉@pythonofff
👍4
Получаем и задаем лимит рекурсии
В Python не оптимизируется хвостовая рекурсия, из-за чего зачастую возникает RecursionError во время создания рекурсивных алгоритмов.
Но с помощью модуля sys можно посмотреть и даже изменить максимальную глубину рекурсии. Хотя делать это слегка опасно, так как каждый новый вызов занимает много памяти.
И вообще лучше стараться использовать не рекурсию, а обычные циклы, но это вы и так сами знаете.
Подписывайтесь на канал 👉@pythonofff
В Python не оптимизируется хвостовая рекурсия, из-за чего зачастую возникает RecursionError во время создания рекурсивных алгоритмов.
Но с помощью модуля sys можно посмотреть и даже изменить максимальную глубину рекурсии. Хотя делать это слегка опасно, так как каждый новый вызов занимает много памяти.
И вообще лучше стараться использовать не рекурсию, а обычные циклы, но это вы и так сами знаете.
Подписывайтесь на канал 👉@pythonofff
👍3