TGINSIGHT CHAT
Python Academy
@python_academy
EducaciónPython Academy — один канал вместо тысячи учебников Чат канала: @python_academy_chat Сотрудничество: @zubar89 Канал включён в перечень РКН: https://rkn.link/TVu
Posts recientes
Etiqueta: #python · 330 posts
Асинхронно скачиваем файлы Имея список ссылок на картинки, которые нужно скачать, мы можем это сделать используя простой цикл for, тем самым скачав их последовательно одна за одной. Но в таких ситуациях как эта (скачивание огромного количества небольших файлов) распараллеливание задачи существенно ускорит процесс. Для этого воспользуемся функцией ThreadPoolExecutor из стандартного пакета concurrent.futures. Она позволяет запустить нашу функцию, в нескольких екземплярах в параллельных потоках. В конструкторе необходимо указать максимальное количество потоков, которые будут одновременно запущены. Далее метод .map(download, urls) создает екземпляры нашей функции для скачивания файла, и раскидывает в них элементы списка urls. Но будьте внимательны: так как скачивание файла — это IO-операция, такой метод не ускоряет вычисления кода. Он лишь позволяет запустить скачивание следующего файла, не дождавшись пока скачается предыдущий. #python#threading
Hashtags
Работаем с атрибутами объектов Помимо привычного обращения к атрибутам объектов через точку, в Python есть 4 специальных функции: getattr, setattr, delattr и hasattr. По названиям можно понять, что первые три отвечают за получение, установку и удаление атрибута. А последний проверяет, существует ли атрибут с указанным названием у объекта или нет. Во всех функциях первыми двумя аргументами идут объект и название атрибута в виде строки. В setattr также нужно передать новое значение для атрибута. На практике использование подобного — довольно редкий случай, но иногда может сильно выручить, так что берите на вооружение. #python#tips
Сокращение ссылок с помощью PyShorteners Вы наверняка сталкивались с сервисами по сокращению ссылок, даже если никогда не использовали их сами. Сокращённые ссылки частовстречаются в описаниях к видео на YouTube, в статьях и на множестве других ресурсов в интернете. Создание сокращенной ссылки можетпоказаться сложной задачей, но насамомделе это можно сделать всего за тристрочки кода с помощью библиотеки PyShorteners, пример кода можно найти на фото. #python#pyshorteners
Hashtags
Преобразование текста в аудио на Python Используя библиотеку gTTS (Google Text-to-Speech) для Python, можно легкопреобразовывать текст в аудиофайлы. Эта библиотека использует API Google Translate для синтеза речи, обеспечиваявысокоекачество преобразования. Установка библиотеки производится стандартным способом через pip. Для начала работы с gTTS необходимо создать его экземпляр, передавтекст, который нужно озвучить, в качестве первого аргумента. Также есть возможность указатьязыкозвучивания через опциональный аргумент, который по умолчанию установлен на английский. Чтобы сохранить синтезированную речь в аудиофайл, используется метод save, аргументом которого является имяфайла. #python#gtts
Обрабатываем номера телефонов Пакет phonenumbers основан на библиотеке libphonenumber от Google, которая позволяет форматировать, парсить и проверять номера телефонов. Основным классом, который представляет номер, является PhoneNumber. Объект можно создать, вызвав метод parse() и передав в аргументы номер телефона в виде строки. Вторым аргументом также можно указать страну. В целом, пакет использовать достаточно просто, базовые примеры есть на картинке. Также можете посмотреть документацию для более продвинутого использования. #python#phonenumbers
Hashtags
Удаление страниц PDF-файла Библиотека PyMuPDF включает в себя довольно много сложных методов, которые упрощают удаление страниц из файла PDF. Он позволяет указать либо одну страницу (используя метод deletePage()), либо диапазон номеров страниц (используя метод deletePageRange()), либо список с номерами страниц (используя метод select()). В следующем примере показано, как использовать список для выбора страниц, которые нужно сохранить в исходном документе. Имейте в виду, что страницы, которые не указаны, не будут частью выходного документа. В нашем случае выходной документ содержит только первую, вторую и четвертую страницы. #python
Hashtags
Тестирование на pytest pytest — ближе по духу к языку Python нежели unittest, которая накладывает определенные обязательства при разработке тестов. Например, создание классов-наследников от TestCase или выполнение определенной процедуры запуска тестов. Но при разработке на pytest ничего этого делать не нужно. Вы просто пишете функции, которые должны начинаться с "test_" и используете assert, встроенные в Python. Также он поддерживает запуск тестов на unittest и nose, то есть полная обратная совместимость с ними. #python#pytest#assert
Отправка писем с использованием SMTP в Python SMTP (Simple Mail Transfer Protocol) - это протокол, который обеспечиваетотправку электронных писем. В Python для работы с этим протоколом доступен модуль smtplib из стандартной библиотеки. Для начала соединения с почтовым сервером мы можем использовать класс SMTP_SSL, который обеспечивает защищенное соединение. Этому классу мы передаем адрессервера и порт. Чтобы авторизоваться на сервере, используем метод login, куда передаемлогин и пароль пользователя. Для отправки электронной почты мы используем метод sendmail. Он принимает адресотправителя, адресполучателя и текстсообщения. Важно помнить, что после отправки сообщения необходимозакрытьсоединение с сервером с помощью метода quit(). Стоит учитывать, что некоторые почтовые сервисы могут иметьограничения и дополнительные требованиябезопасности. Например, для работы с Gmail может понадобиться включитьподдержку "доступа к ненадежным приложениям" и настроить двухфакторную аутентификацию. #python#smtp
Создаем интерактивные веб-приложения с Streamlit Streamlit позволяет превращать скрипты Python в интерактивные веб-приложения за считанныеминуты, а не за недели. Создавайте информационныепанели, генерируйте отчеты или создавайте приложения для чата. Создав приложение, вы можете использовать облачную платформу Community Cloud для развертывания, управления и распространения приложения. Почему стоит выбрать Streamlit? — Простота и питоничность: Пишите красивый, легко читаемый код. — Быстрое интерактивное создание прототипов: Позвольте другим людям взаимодействовать с вашими данными и быстро предоставлять отзывы. — Редактирование в реальном времени: Видите, как ваше приложение мгновеннообновляется по мере редактирования кода. #python#streamlit
Hashtags
Перебираем все возможные 8 значные пароли состоящие из букв и цифр с помощью Python В этом примере используется модуль itertools, который позволяет генерировать все возможные комбинации символов из списка characters длиной password_length. Затем перебираются все комбинации и выводятся на экран. Обратите внимание, что перебор всех возможных 8-значных паролей может занять большое количество времени, особенно если количество символов в characters большое. Будьте осторожны и убедитесь, что ваше намерение соответствует законам и этическим правилам. #python#itertools
Hashtags
Декоратор override @overrideиспользуется для переопределения методов в классах-наследниках. Он позволяет указать, что метод в подклассе переопределяет метод базового класса. Это может быть полезно для: — Повышения читабельности кода, так как сразу видно, какие методы переопределены. — Выявления ошибок: если имя метода в дочернем классе не совпадает с именем в родительском, будет выдана ошибка. — Проверки типов аргументов: декоратор гарантирует, что типы аргументов совпадают с базовым методом. #python#decorators
Hashtags
Функция itertools.chain() Функция itertools.chain() в Python объединяет несколько итераторов в один. Она принимает в качестве аргумента один или несколько итераторов, и возвращает итератор, который последовательно возвращает элементы из этих итераторов. Например, код сверху объединяет две строки в одну. #python
Hashtags