FFmpeg: Лучшее решение для обработки мультимедийных файлов
Для начала использования
Исходный код и документация доступны тут
FFmpeg
- это бесплатная и открытая библиотека и набор инструментов для обработки мультимедийных файлов. Она предоставляет мощные возможности для работы с видео, аудио и другими мультимедийными данными. FFmpeg
является одним из самых популярных и универсальных инструментов для обработки мультимедиа в мире.Для начала использования
FFmpeg
, вы можете установить библиотеку командой pip install ffmpeg-python
. После этого, вы можете создавать собственные скрипты для обработки видео и аудио файлов, определяя нужные операции и параметры. ffmpeg-python
обладает мощными возможностями для конвертации, обрезки, склеивания и многого другого.Исходный код и документация доступны тут
Операции с zip архивами
Для работы с
Просмотреть содержимое архива можно с помощью функции
Также этот модуль позволяет создавать свои
#zipfile
Для работы с
zip
файлами можно использовать встроенный модуль zipfile
. Если кто не помнит, то zip
файл — это архив, содержащий сжатые файлы. Просмотреть содержимое архива можно с помощью функции
printdir
, а извлечь все файлы можно вызвав extractfile
. Также этот модуль позволяет создавать свои
zip
архивы, но мы решили не усложнять пример, поэтому просто прикладываем ссылку на документацию. #zipfile
Дизассемблирование
При запуске программы на python, написанный код преобразуется в байт-код, который затем может быть запущен в интерпретаторе Python. Встроенный модуль
На картинке показана работа этого модуля на примере функции, но такое можно повторить и с классами – в таком случае все его функции будут дизассемблированы.
#модули #байткод
При запуске программы на python, написанный код преобразуется в байт-код, который затем может быть запущен в интерпретаторе Python. Встроенный модуль
dis
позволяет дизассемблировать байт-код в удобное представление для просмотра его инструкций. Полный спсиок инструкций байт-кода с описанием можно посмотреть в доке модуля.На картинке показана работа этого модуля на примере функции, но такое можно повторить и с классами – в таком случае все его функции будут дизассемблированы.
#модули #байткод
Как перезагрузить импортированный модуль?
Чтобы перезагрузить импортированный модуль в Python, вы можете использовать функцию reload() из модуля importlib.
Замените module_name на фактическое имя модуля, который вы хотите перезагрузить.
Это может быть полезно при разработке и тестировании модулей, но не рекомендуется использовать в производственном коде без серьезных причин.
#модули
Чтобы перезагрузить импортированный модуль в Python, вы можете использовать функцию reload() из модуля importlib.
Замените module_name на фактическое имя модуля, который вы хотите перезагрузить.
Это может быть полезно при разработке и тестировании модулей, но не рекомендуется использовать в производственном коде без серьезных причин.
#модули
Daphne
Daphne — это сервер HTTP, HTTP2 и WebSocket для ASGI и ASGI-HTTP, разработанный для поддержки Django Channels. Он поддерживает автоматическое согласование протоколов; нет необходимости в префиксации URL-адресов для определения конечных точек WebSocket по сравнению с конечными точками HTTP.
#python
Daphne — это сервер HTTP, HTTP2 и WebSocket для ASGI и ASGI-HTTP, разработанный для поддержки Django Channels. Он поддерживает автоматическое согласование протоколов; нет необходимости в префиксации URL-адресов для определения конечных точек WebSocket по сравнению с конечными точками HTTP.
#python
Forwarded from Бесплатное образование
Новости для будущих студентов
Ректор Центрального университета Евгений Ивашкевич раскрыл планы вуза по вовлечению большого бизнеса в образовательные процессы страны. "Очень скоро мы можем остаться без инженерных и IT-кадров. Все понимают, что через 10–15 лет не с кем будет работать. Именно поэтому наша задача – это привлечь бизнес к решению проблем образования. Чтобы бизнес вкладывался в образовательные проекты в области информатики, физики и химии," - подчеркнул Ивашкевич.
По словам ректора, четыре года назад в стране профильную математику на ЕГЭ сдавало около 360 000 школьников, а в прошлом году – всего 283 000 школьников. "Компаниям недостаточно просто открывать свои кафедры в вузах. На таких кафедрах, как правило, учатся 30–40 человек, что совсем немного — это не решает проблему дефицита кадров стране," - пояснил он.
Именно поэтому был создан Центральный университет — вуз от бизнеса и для бизнеса. "Мы хотим дать нашим студентам и образование, и профессию. Только так можно обеспечить эффективный социальный лифт для выпускников, сделать их востребованными специалистами на рынке труда," - отметил Евгений.
18 и 19 мая Центральный университет проведет масштабный День открытых дверей перед стартом приемной кампании.
Мероприятие пройдет в головных офисах партнеров ЦУ — VK и Тинькофф.
🔗 Гостям обязательно нужно пройти регистрацию
Ректор Центрального университета Евгений Ивашкевич раскрыл планы вуза по вовлечению большого бизнеса в образовательные процессы страны. "Очень скоро мы можем остаться без инженерных и IT-кадров. Все понимают, что через 10–15 лет не с кем будет работать. Именно поэтому наша задача – это привлечь бизнес к решению проблем образования. Чтобы бизнес вкладывался в образовательные проекты в области информатики, физики и химии," - подчеркнул Ивашкевич.
По словам ректора, четыре года назад в стране профильную математику на ЕГЭ сдавало около 360 000 школьников, а в прошлом году – всего 283 000 школьников. "Компаниям недостаточно просто открывать свои кафедры в вузах. На таких кафедрах, как правило, учатся 30–40 человек, что совсем немного — это не решает проблему дефицита кадров стране," - пояснил он.
Именно поэтому был создан Центральный университет — вуз от бизнеса и для бизнеса. "Мы хотим дать нашим студентам и образование, и профессию. Только так можно обеспечить эффективный социальный лифт для выпускников, сделать их востребованными специалистами на рынке труда," - отметил Евгений.
18 и 19 мая Центральный университет проведет масштабный День открытых дверей перед стартом приемной кампании.
Мероприятие пройдет в головных офисах партнеров ЦУ — VK и Тинькофф.
🔗 Гостям обязательно нужно пройти регистрацию
Работа с методом str.replace() в Python
Метод принимает два основных аргумента: первый - это подстрока, которую нужно заменить в исходной строке, а второй - это подстрока, на которую происходит замена.
Кроме того, существует третий необязательный аргумент, определяющий количество замен старой подстроки на новую. Если он не указан, метод заменяет все вхождения.
#python #replace
Python
предлагает множество удобных встроенных методов для работы со строками. Один из таких методов - str.replace()
, который используется для замены частей строки.Метод принимает два основных аргумента: первый - это подстрока, которую нужно заменить в исходной строке, а второй - это подстрока, на которую происходит замена.
Кроме того, существует третий необязательный аргумент, определяющий количество замен старой подстроки на новую. Если он не указан, метод заменяет все вхождения.
#python #replace
dateparser
Обратите внимание, что
#python #dateparser
dateparser
— это библиотека Python
, предоставляющая удобные инструменты для разбора и анализа текстовых дат и времени. Она автоматически определяет формат даты и времени в текстовой строке и преобразует его в объект datetime
. Это особенно полезно, когда у вас есть текстовые описания дат и времени в различных форматах, и вы хотите их структурировать.Обратите внимание, что
dateparser
может использовать текущие локальные настройки для определения форматов даты и времени, поэтому результаты могут зависеть от настроек вашей системы. Вы также можете явно указать нужную локаль с помощью аргумента locales
, если это необходимо.#python #dateparser
NetworkX
NetworkX — это библиотека Python для анализа сложных сетей. Она предоставляет структуры данных для работы с графами (сетями) и реализует множество алгоритмов для анализа и визуализации сетевых данных.
Она может использоваться в различных областях, таких как социальные, биологические, транспортные, компьютерные сети и многих других.
#python
NetworkX — это библиотека Python для анализа сложных сетей. Она предоставляет структуры данных для работы с графами (сетями) и реализует множество алгоритмов для анализа и визуализации сетевых данных.
Она может использоваться в различных областях, таких как социальные, биологические, транспортные, компьютерные сети и многих других.
#python
Вычисляем размер объектов в памяти
Чтобы вычислить размер какого-либо объекта, можно воспользоваться функцией
Однако, следует помнить, что хотя все built-in (встроенные) объекты и вернут правильный размер, в общем случае это не должно быть верно для каких-либо пользовательских объектов.
Аргумент
Функция
#sys #sizeof #oop
Чтобы вычислить размер какого-либо объекта, можно воспользоваться функцией
sys.getsizeof(object[, default])
. Поскольку Python написан в полном соответствии с парадигмой ООП, таким объектом может быть все что угодно.Однако, следует помнить, что хотя все built-in (встроенные) объекты и вернут правильный размер, в общем случае это не должно быть верно для каких-либо пользовательских объектов.
Аргумент
default
позволяет определить значение, которое будет возвращено, если тип объекта не предоставляет средства для извлечения размера и вызовет TypeError
.Функция
getsizeof
вызывает метод __sizeof__
объекта и добавляет дополнительные служебные данные сборщика мусора, если конечно объект управляется сборщиком мусора.#sys #sizeof #oop
Docxtpl
Библиотека поддерживает различные типы данных и позволяет использовать сложные шаблоны, что делает её мощным инструментом для автоматизации создания документов.
#docxtpl
Docxtpl
— это библиотека Python, которая позволяет генерировать Word-документы на основе шаблонов. С её помощью можно легко создавать динамические документы, вставляя данные из Python в шаблон docx
. Библиотека поддерживает различные типы данных и позволяет использовать сложные шаблоны, что делает её мощным инструментом для автоматизации создания документов.
#docxtpl
PyJWT: Работаем с JSON Web Tokens в Python
В этом примере мы создаём JWT, который содержит идентификатор пользователя и срок его действия. Затем мы декодируем и проверяем токен, чтобы убедиться, что он ещё действителен и подлинен.
#python #pyjwt
PyJWT
— это библиотека Python
, предназначенная для кодирования, декодирования и проверки подлинности JSON Web Tokens (JWT)
.JWT
— это открытый стандарт (RFC 7519), который определяет компактный и независимый способ безопасной передачи информации между сторонами в виде JSON-объекта. Эта информация может быть проверена и доверена, так как она подписана цифровой подписью.В этом примере мы создаём JWT, который содержит идентификатор пользователя и срок его действия. Затем мы декодируем и проверяем токен, чтобы убедиться, что он ещё действителен и подлинен.
#python #pyjwt
Работа с аргументами и параметрами командной строки
В
Для начала нужно создать объект парсера
Первым параметром метод
После добавления всех аргументов их нужно спарсить с помощью метода
#python #argparse
В
Python
для обработки передаваемых аргументов и создания удобного интерфейса командной строки существует отличный модуль argparse
.Для начала нужно создать объект парсера
ArgumentParser
, в который можно добавить аргументы с необходимыми параметрами с помощью метода add_argument
.Первым параметром метод
add_argument
принимает либо имя обязательного позиционного аргумента, либо список опциональных аргументов (опциональные аргументы идентифицируются через -). Также у add_argument
есть множество необязательных опциональных параметров для работы с передаваемыми значениями аргумента.После добавления всех аргументов их нужно спарсить с помощью метода
parse_args
. На выходе получится объект, содержащий все переданные аргументы.#python #argparse
PyQt6
#python #pyqt #pyqt6
PyQt6
— это библиотека на Python
для создания графических интерфейсов (GUI), связывающая Python с Qt. Она предоставляет широкий набор виджетов и функциональностей для создания кроссплатформенных приложений.PyQt6
поддерживает современные стандарты, включая Qt Quick, для разработки интерактивных интерфейсов. Библиотека легко интегрируется с другими фреймворками Python, что делает её подходящей для сложных проектов.#python #pyqt #pyqt6
Упрощенная работа с JSON
Казалось бы, куда еще проще, но есть один интересный пакет
Основные примеры использования показаны на картинке, там нет ничего сложного. Метод
Вообще возможностей у пакета достаточно, поэтому он достоен изучения и применения в проектах. Подробнее советую почитать в документации.
#json #jmespath
Казалось бы, куда еще проще, но есть один интересный пакет
JMESpath
, который позволяет декларативно указать, как извлекать элементы из документа JSON. Основные примеры использования показаны на картинке, там нет ничего сложного. Метод
search
принимает паттерн, по которому требуется извлечь данные, а также словарь (который в общем-то похож на JSON). Вообще возможностей у пакета достаточно, поэтому он достоен изучения и применения в проектах. Подробнее советую почитать в документации.
#json #jmespath
Метод isspace()
Метод
Примечание:
#python
Метод
isspace()
— это строковый метод, который используется для проверки, состоит ли строка только из пробельных символов (пробелов, символов табуляции, символов новой строки и других символов, которые считаются «пробельными» в контексте языка Python).Примечание:
isspace()
не изменяет исходную строку, а просто возвращает булево значение в зависимости от условия.#python
frozenset
Вот несколько ключевых особенностей
Неизменяемость: Это означает, что вы не можете добавлять, удалять или изменять элементы в
Хешируемость: Поскольку
Обратите внимание, что, поскольку
#python
frozenset
представляет собой неизменяемое множество. Основное отличие между set
и frozenset
заключается в том, что set является изменяемым типом данных, тогда как frozenset
не может быть изменен после создания.Вот несколько ключевых особенностей
frozenset
:Неизменяемость: Это означает, что вы не можете добавлять, удалять или изменять элементы в
frozenset
после его создания.Хешируемость: Поскольку
frozenset
неизменяем, он является хешируемым, что означает, что его можно использовать в качестве ключа в словарях и элемента множества.Обратите внимание, что, поскольку
frozenset
не поддерживает изменения, некоторые методы, которые изменяют множество (например, add
, remove
, discard
), не применимы к frozenset
. Однако, вы можете выполнять операции, возвращающие новые frozenset
, такие как объединение и пересечение.#python
Слайсы
Слайс (или срез, англ. slice) — это способ выбрать часть последовательности (например, строки, списка, кортежа) путем указания начального и конечного индексов, а также шага. Слайсы используются для извлечения подстрок, подсписков или подкортежей из исходной последовательности.
Слайсы полезны для работы с большими последовательностями данных и предоставляют удобный способ извлечения нужных элементов из них.
#python #slice
Слайс (или срез, англ. slice) — это способ выбрать часть последовательности (например, строки, списка, кортежа) путем указания начального и конечного индексов, а также шага. Слайсы используются для извлечения подстрок, подсписков или подкортежей из исходной последовательности.
Слайсы полезны для работы с большими последовательностями данных и предоставляют удобный способ извлечения нужных элементов из них.
#python #slice
Считаем ссылки на объект
В
Счетчик ссылок — это то, что помогает при проверке того, следует ли выполнять сборку мусора или нет. Сборщик мусора удаляет объект из памяти в случае, если на него ничего не ссылается.
Если на объект ссылается другой объект, то он имеет ненулевое значение ссылок и не может быть собран как мусор (если, конечно, вы не удалите вручную).
В примере выше продемонстрирован простой способ, как можно посмотреть количество ссылок у объекта.
#python #ctypes
В
Python
практически никогда не нужно волноваться об управлении памятью, потому что все это делается автоматически.Счетчик ссылок — это то, что помогает при проверке того, следует ли выполнять сборку мусора или нет. Сборщик мусора удаляет объект из памяти в случае, если на него ничего не ссылается.
Если на объект ссылается другой объект, то он имеет ненулевое значение ссылок и не может быть собран как мусор (если, конечно, вы не удалите вручную).
В примере выше продемонстрирован простой способ, как можно посмотреть количество ссылок у объекта.
#python #ctypes