TGINSIGHT CHAT
Python Academy
@python_academy
EducaciónPython Academy — один канал вместо тысячи учебников Чат канала: @python_academy_chat Сотрудничество: @zubar89 Канал включён в перечень РКН: https://rkn.link/TVu
Posts recientes
Etiqueta: #python · 330 posts
Слияние аудио и видео потоков Проблема с получением видео в высоком качестве со звуком с YouTube связана с использованием технологии DASH (Dynamic Adaptive Streaming over HTTP), которая не предусматривает наличие звуковой дорожки в потоке. Решением является отдельное получение аудио и видео потоков и их последующее объединение с использованием программы ffmpeg. Необходимо выбрать соответствующие аудио и видео потоки, затем использовать полученные URL в команде ffmpeg для запуска процесса загрузки и слияния потоков. #python#ffmpeg#pytube
Локализация в Python с помощью модуля gettext В процессе разработки программ иногда необходимо предоставить поддержку разных языков. Модуль gettext в Python предоставляет удобный механизм локализации, который позволяет адаптировать ваше приложение для различных языковых сообществ. Что такое gettext? gettext - это модуль Python, предназначенный для обеспечения поддержки интернационализации и локализации. Он позволяет создавать переводы строк на различные языки, обеспечивая легкость адаптации приложения под разные культурные контексты. Пример использования gettext: import gettext from pathlib import Path translations = gettext.translation('your_app', localedir=Path('locales'), languages=['ru']) translations.install() print(_("Hello, gettext!")) В данном примере мы используем модуль gettext для загрузки файлов перевода из директории 'locales' для русского языка. Функция _() используется для обозначения строк, подлежащих локализации. Создание файлов перевода: Для создания файлов перевода можно воспользоваться утилитой pybabel: pybabel extract -F babel.cfg -o messages.pot your_app pybabel init -i messages.pot -d locales -l ru gettext также предоставляет множество возможностей для более сложных сценариев локализации, таких как форматирование чисел, дат и поддержка множественных форм. #python#gettext#i18n
Логирование в Python используя Loguru Сегодня мы расскажем вам о библиотеке loguru, которая предоставляет простые и эффективные средства для логирования ваших приложений на Python. loguru призвана упростить процесс создания и анализа логов, делая его более интуитивно понятным и гибким. Что такое loguru? loguru - это библиотека для логирования в Python, созданная с упором на простоту использования и выразительность. Она предоставляет удобный синтаксис для настройки логирования и поддерживает различные форматы вывода, а также обеспечивает автоматическую ротацию лог-файлов. Преимуществаloguru: 1. Простота использования:loguru предлагает чистый и интуитивно понятный синтаксис для логирования, что упрощает его внедрение в ваши проекты. 2. Гибкость: Вы можете легко настраивать формат вывода, выбирать уровни логирования и добавлять собственные обработчики. 3. Автоматическая ротация: Библиотека автоматически управляет ротацией лог-файлов, предотвращая переполнение дискового пространства. 4. Поддержка различных форматов вывода:loguru поддерживает вывод в различных форматах, включая JSON, CSV, и прочие. #python#loguru#логирование
Hashtags
Используйте dict.get() вместо dict[] Есть несколько способов получения значений из словарей, и даже по такой теме разработчики часто спорят. Многие получают значения по ключам через квадратные скобки, но если такого ключа нет, то будет вызвано исключение. Поэтому мы считаем, что лучше использовать метод get у словарей. Его основной плюс заключается в том, что он принимает опциональный аргумент, отвечающий за значение по умолчанию. Таким образом, если значение по ключу не найдено, то вернется дефолтное значение. В итоге, мы убираем возможные ошибки в случае, если нужных ключей в словаре нет. #python#dict
Преобразование аудиофайлов с помощью Python В Python существует множествоспособов для выполнения конвертации аудиофайлов из одного формата в другой. Одним из наиболееудобных инструментов для этого является модуль pydub. Этот модуль служит оболочкой для ffmpeg и предоставляет возможности по загрузке, редактированию и сохранению аудиофайлов в различных форматах, поддерживаемыхffmpeg. Для начала работы с файлом, используем метод from_ с указанием необходимогоформата из класса AudioSegment, или же обратимся к более универсальному методу from_file, предоставляя путь к файлу и его формат. Когда файл загружен, для его конвертации и сохранения в желаемом формате применяем метод export объекта класса AudioSegment, созданного на предыдущем шаге. #python#pydub
Скачиваем видео с YouTube Пакет pytube предоставляет всю небходимую функциональность для скачивания видео с YouTube, а также для сбора всей информации о нем. Для работы нам необходимо создать объект класса YouTube. Помимо ссылки на видео в конструктор можно передать в качестве параметров функции для обработки прогресса загрузки и завершения. Большинство видео на ютубе не имеют аудиодорожки на потоках с высоким разрешением, свыше 720p — это связано с технологией передачи DASH, которую использует YouTube. На картинке мы показали как отфильтровать потоки с прогрессивной передачей и выбрать из полученного списка с максимальным доступным разрешением до 720p. Для загрузки выбранного потока используем функцию download(), в функцию можно передать в качестве параметров путь до директории для сохранения и имя файла. #python#youtube
Использование OpenCV для работы с веб-камерой Библиотека OpenCV это инструмент для работы с компьютерным зрением, обработки изображений и видео. Её можно легко установить через pip, используя команду: pip install opencv-python. В качестве примера давайте рассмотрим, как можно захватить изображение с веб-камеры и отобразить его в окне. Для начала, инициализируем веб-камеру с помощью команды cap = cv2.VideoCapture(0), где число обозначает индекс камеры. Далее, с помощью строки ret, frame = cap.read(), мы извлекаем текущее изображение с камеры в переменную frame, а также получаем статус захвата в переменную ret. Если ret == True, это означает, что захват прошёл успешно. Следующим шагом, команда cv2.imshow('webcam', frame) открывает графическое окно с полученным изображением. Для выхода из цикла просмотра и завершения работы скрипта, используется проверка нажатия клавиши 'q': if cv2.waitKey(1) & 0xFF == ord('q'):. Наконец, для освобождения веб-камеры и закрытия всех графических окон, используются команды cap.release() и cv2.destroyAllWindows() соответственно. #python#opencv
Валидаторы данных Как правило, разработчики пишут регулярные выражения для обработки специфических строк. Но для таких данных как, почта или ссылка, изобретать велосипед не нужно. Модуль validators позволяет использовать уже готовые валидаторы для самых распространенных задач. В примере можете как раз увидеть валидацию почты и ссылок. Помимо этого, validators позволяет также работать с ipv4, ipv6, mac адресами и многим другим. В итоге, имеем лаконичный и простой модуль с хорошим функционалом. #python#validators
Hashtags
Работа с форматированием текста textwrap — это стандартная библиотека, которая спользуется для форматирования текста в тех случаях, когда нам нужна красивая печать. Он предлагает функциональность аналогичную текстовым редакторам и текстовым процессорам. Немного о возможностях: textwrap.fill() — принимает текст и возвращает отформатированный текст, первая строка сохраняет свой отступ, а пробелы в начале каждой последующей строки вставляются в абзац. textwrap.dedent() — используется для удаления общего префикса пробела из всех строк в тексте. textwrap.indent() — используется для добавления текст префикса ко всем строкам в параграфе #python#textwrap
FastAPI Template — лучший темплейт со всем что надо для старта на FastAPI! Одной из самых замечательных особенностей является то, что этот проект очень легко настраивается. Вы можете выбирать между различными базами данных и даже ORM, а можете даже сгенерировать проект без базы данных! В настоящее время поддерживаются SQLAlchemy 2.0, TortoiseORM, Piccolo и Ormar. Фичи темплейта: - Pydantic V2 (где это возможно, некоторые либы не поддерживают) - Вы можете выбрать между GraphQL и REST API - uvicorn и gunicorn - Поддержкаразличных баз данных и ORM - Опциональные миграции для каждогоORM (кроме сырых драйверов) - Различные CI\CD - Дополнительные демонстрационныероуты и модели (это поможет вам увидеть, как устроенпроект) - Сгенерированные тесты с почти 90% покрытием - Дополнительная поддержкаRedis, RabbitMQ, Kafka и taskiq - Опциональная интеграция с Prometheus, Sentry и Opentelemetry - Опциональный логгерLoguru Ссылку оставляю тут. #python#fastapi#template
Как перезагрузить импортированный модуль? Чтобы перезагрузить импортированный модуль в Python, вы можете использовать функцию reload() из модуля importlib Замените module_name на фактическое имя модуля, который вы хотите перезагрузить. Это может быть полезно при разработке и тестировании модулей, но нерекомендуется использовать в проде без серьезных причин. #python#importlib
Hashtags
Распознаем речь используя SpeechRecognition SpeechRecognition — это библиотека на Python, которая предоставляет возможность использовать API для распознаванияречи от различных компаний, таких как Google, Microsoft, IBM и другие. Кроме того, она поддерживает работу в офлайн-режиме. Эта библиотека упрощаетпроцессинтеграции голосовых команд и обработки аудиоданных в ваших проектах. Благодаря широкому спектру возможностей, SpeechRecognitionподходит для создания приложений с голосовым управлением, интеллектуальных ассистентов и многого другого. #python#speechrecognition
Hashtags