TGINSIGHT CHAT
Python Academy
@python_academy
EducaciónPython Academy — один канал вместо тысячи учебников Чат канала: @python_academy_chat Сотрудничество: @zubar89 Канал включён в перечень РКН: https://rkn.link/TVu
Posts recientes
Etiqueta: #python · 330 posts
Создание и использование виртуальной среды virtualenv — инструмент для создания изолированных сред Python. Программа создает папку, которая содержит все необходимые исполняемые файлы для использования пакетов, необходимых для проекта. Создание новой виртуальной среды требуется только один раз для каждого проекта, для которого вы хотите изолировать зависимости: python3 -m venv venv Это создаст папку venv, содержащую оснастку сценариев и копию python самого двоичного файла. Название папки не имеет значения. Чтобы активировать виртуальную среду, нужно запустить activate файл: source venv/bin/activate и далее мы можем свободно устанавливать любые зависимости, которые никак не скажутся на работе в будущих проектах. #python#virtualenv
Hashtags
Преобразование текста в аудио на Python Используя библиотеку gTTS (Google Text-to-Speech) для Python, можно легкопреобразовывать текст в аудиофайлы. Эта библиотека использует API Google Translate для синтеза речи, обеспечиваявысокоекачество преобразования. Установка библиотеки производится стандартным способом через pip. Для начала работы с gTTS необходимо создать его экземпляр, передавтекст, который нужно озвучить, в качестве первого аргумента. Также есть возможность указатьязыкозвучивания через опциональный аргумент, который по умолчанию установлен на английский. Чтобы сохранить синтезированную речь в аудиофайл, используется метод save, аргументом которого является имяфайла. #python#gtts
Внедрение асинхронных задач с Taskiq Библиотека Taskiq предназначена для упрощения работы с асинхронными задачами в Python, позволяя разработчикам легко организовывать фоновуюобработкузадач. Это решение идеальноподходит для случаев, когда необходимо выполнять задачи, неблокируя основной поток приложения. Принцип работы с Taskiqпрост и интуитивно понятен, что демонстрируется на примерах в документации. Для примера использования библиотеки Taskiq, предположим, что вы хотите асинхронноотправитьemailбезблокирования основного потока выполнения вашего приложения. В этом примере мы создали простую асинхронную задачу для отправки email с использованием Taskiq. УстановкаTaskiq производится через менеджер пакетов pip. Более подробно о возможностях и применениибиблиотеки можно узнать в официальной документации. #python#taskiq
Картографическая визуализация с использованием Folium Folium обеспечивает интеграцию данных на карты, позволяя создавать как фоновые картограммы, так и размещать на картах векторные, растровые и HTML элементы в виде маркеров. Эта библиотека поддерживает пользовательские наборы тайлов от MapBox или Cloudmade. В арсенале Folium имеются различные типы маркеров, от простых маркеров местоположения со стандартными листовками, содержащими всплывающие окна и HTML подсказки, до возможности встраивания изображений, видео, а также GeoJSON и TopoJSON объектов. Посмотреть результат выполнения кода со скрина можно тут -- https://i.imgur.com/QhNDb5I.png #python#folium
Слияние аудио и видео потоков Проблема с получением видео в высоком качестве со звуком с YouTube связана с использованием технологии DASH (Dynamic Adaptive Streaming over HTTP), которая не предусматривает наличие звуковой дорожки в потоке. Решением является отдельное получение аудио и видео потоков и их последующее объединение с использованием программы ffmpeg. Необходимо выбрать соответствующие аудио и видео потоки, затем использовать полученные URL в команде ffmpeg для запуска процесса загрузки и слияния потоков. #python#ffmpeg#pytube
Установление SSH-соединения с сервером Библиотека paramiko предоставляет возможность подключения к серверам через протокол SSH2, позволяя выполнять те же действия, что и при использовании стандартной утилиты ssh в Linux. Модуль paramiko отличается простотой в использовании, и вы можете ознакомиться с примерами его основных методов на представленном изображении. В качестве любопытного факта, название Paramiko происходит от слияния слов "параноик" и "друг" на языке эсперанто. Для установки пакета используйте менеджер пакетов pip в привычном порядке. Подробную документацию можно найти здесь. #python#paramiko#ssh
Особенности статических методов Основное отличие статических методов от методов экземпляра заключается в их привязке к классу, а не к отдельному объекту. Это означает, что их можно вызывать непосредственно через класс. Статические методы не получают ссылку на экземпляр (self) или класс (cls) в качестве аргументов, что делает их независимыми от состояния объекта или класса. Следовательно, они не могут изменять состояние объекта или класса. Существует дваосновных способа определения статического метода. Менее распространенный — назначение метода классу, используя функцию staticmethod для оборачивания исходного метода. Однако более предпочтительным является использование staticmethod как декоратора, что упрощает объявление статических методов непосредственно внутри класса. #python#staticmethod
Hashtags
Использование аннотаций типов в Python Python, язык с динамическойтипизацией, позволяет работать с переменными различных типов. Иногда это может привести к ошибкам из-за неправильного использования типов . Начиная с версии 3.6, Python поддерживает аннотации типов для переменных, атрибутов классов, аргументов функций и их возвращаемых значений, что помогает улучшить читаемость кода и предотвратить ошибки, связанные с типами данных. #python#typing
Загрузка файлов асинхронно Если у нас есть список URL картинок для загрузки, использование простого цикла for позволит нам загрузить их последовательно, по одной за раз. Однако, для задач, включающих загрузку большогоколичества маленьких файлов, параллелизация может заметно ускорить процесс. Для параллелизации мы можем использовать ThreadPoolExecutor из модуля concurrent.futures. Этот инструмент позволяет выполнить функцию загрузки в нескольких параллельных потоках, где в конструкторе необходимо указать максимальное количество потоков для одновременного выполнения. С помощью метода .map(download, urls) можно развернуть функцию загрузки на каждый URL из списка, обеспечивая их параллельнуюобработку. Важно понимать, что так как загрузка файлов является IO-операцией, данный метод неускоряет выполнение кода в прямом смысле, а скорее позволяет начать загрузку следующего файла, не ожидая завершения предыдущего. #python#threading
Hashtags
Современный способ сериализации, десериализации и валидации данных adaptix - гибкая и легкоконфигурируемая библиотека для сериализации и десериализации данных. adaptix работает с нативными dataclass, NamedTuple, TypedDict.Ваши модели не зависят от библиотеки и не требуют наследования от каких-либо специальных классов, позволяя моделям оставаться чистыми, а вам - следовать принципу инверсии зависимостей. Также, библиотека позволяет легко создавать свои правила для конвертации данных и группировать их, соответствуя принципу DRY. Особое внимание стоит обратить на возможность преобразования стилей названий полей, что полезно в web приложениях. Приятным бонусом будет то, что adaptix до двух раз быстрее чем pydantic v2 (бенчмарки). #python#typing#adaptix
Работаем с атрибутами объектов Помимо привычного обращения к атрибутам объектов через точку, в Python есть 4 специальных функции: getattr, setattr, delattr и hasattr. По названиям можно понять, что первые три отвечают за получение, установку и удаление атрибута. А последний проверяет, существует ли атрибут с указанным названием у объекта или нет. Во всех функциях первыми двумя аргументами идут объект и название атрибута в виде строки. В setattr также нужно передать новое значение для атрибута. На практике использование подобного — довольно редкий случай, но иногда может сильно выручить, так что берите на вооружение. #python#tips
Запись экрана в Windows с помощью Python Для записиэкрана в Windows используя Python существует несколько библиотек, однако наиболееэффективной оказалась d3dshot. Библиотека d3dshot использует системные библиотеки DXGI и Direct3D для быстрого и надежного захвата экрана. Эта библиотека идеальноподходит для создания игровых ботов. #python#d3dshot