Обновить
838

Python *

Высокоуровневый язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

Самые популярные Python фреймворки и библиотеки 2025 года

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели16K

Команда Python for Devs подготовила перевод статьи о самых популярных Python-фреймворках и библиотеках 2025 года. FastAPI уверенно догоняет Django и Flask, Requests и Asyncio остаются незаменимыми, а Streamlit и Starlette усиливают свои позиции в нишевых сценариях.

Читать далее

Сколько весит секрет? Считаем стеганографическую емкость контейнеров на Python

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели4.9K

Привет, Хабр! При работе со стеганографией первый и самый важный вопрос, который возникает перед пользователем: «А мой файл вообще поместится в эту картинку?». Попытка спрятать 10-мегабайтный архив в иконку размером 64x64 пикселя обречена на провал. Именно поэтому оценка стеганографической емкости контейнера — это краеугольный камень любой операции по сокрытию данных.

Емкость — это не просто размер файла. Это сложное понятие, которое кардинально меняется в зависимости от формата контейнера (PNG, JPEG, DOCX) и метода сокрытия (LSB, DCT и др.).

Сегодня на примере кода из нашего проекта ChameleonLab мы подробно разберем, как вычисляется емкость для разных типов файлов, и напишем соответствующие функции на Python.

Читать далее

Особенности Python, о которых вас точно спросят на техническом собеседовании

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели16K

Python кажется простым и понятным — именно поэтому с него так классно начинать карьеру разработчика. Но за этой простотой скрываются тонкости, которые любят проверять на собеседованиях. И тут начинающий разработчик может неожиданно попасть впросак: вроде бы код работает, но поведение совсем не такое, как ожидалось.

Как автор курса «Python-разработчик» в Яндекс Практикуме, я часто разбираю подобные ситуации на своём YouTube-канале, где провожу открытые тестовые интервью с джунами. Всё, о чём я говорю, — это не абстрактные примеры, а реальные наблюдения и выводы, сделанные прямо в ходе этих собеседований. 

В статье я собрал самые интересные особенности Python, которые неоднократно встречались в подобных интервью и которые почти наверняка всплывут на вашем техническом собеседовании. Покажу, что именно спрашивают интервьюеры, и поясню, почему это важно. Если вы только готовитесь к первой работе или хотите подтянуть фундаментальные знания — продолжайте читать.

Читать далее

WhatsApp Web и Telegram коннектор для Bitrix24: наш опыт реализации и внедрения. Часть 1 — Интеграция Bitrix24

Уровень сложностиСредний
Время на прочтение24 мин
Охват и читатели6.4K

Привет, мир! Меня зовут Павел, я IT инженер и руководитель службы технической поддержки.

Работая в формате крупного IT-аутсорсинга, мы в компании столкнулись с проблемой: использование общего WhatsApp/Telegram Web, подключённого на компьютерах сотрудников поддержки, оказалось неэффективным. Такой подход не позволял контролировать качество диалогов, а также затруднял перевод обращений клиентов в структурированные тикеты, вследствие чего была начата разработка коннектора к нашему корпоративному порталу Bitrix24.

В данной статье я бы хотел поделиться основами технической реализации и ключевым функционалом коннектора. Детали реализации - например, верстку html страниц, тесты, кастомизацию панели администратора и так далее - оставляю на ваше усмотрение.

Читать далее

Как подружить MISP и Python? Мой опыт

Время на прочтение5 мин
Охват и читатели5K

Привет, хабровчане! С вами снова Иван — разработчик, который пишет на Python, и хаброписатель, который пишет для блога МТС.

Если вы работаете в сфере кибербезопасности или интересуетесь ей, то, скорее всего, знаете о существовании индикаторов компрометации. «Да, они есть, и что дальше?» — скажете вы. Ответ: их нужно где-то хранить. Для этой задачи есть различные платформы, одни платные, другие — нет. Сегодня мы сфокусируемся на MISP — у этого продукта множество фанатов, и их можно понять. Но вручную вносить все индикаторы скучно, не так ли? Поэтому мы добавим нотку автоматизации, и тут нам поможет Python. Как именно, узнаете дальше.

Читать далее

Самый быстрый способ читать Excel в Python

Уровень сложностиПростой
Время на прочтение14 мин
Охват и читатели15K

Команда Python for Devs подготовила перевод статьи о том, как читать Excel в Python быстрее всех. В статье результаты тестирования pandas, openpyxl, Tablib, DuckDB, LibreOffice и даже связки с Rust. Кто справился лучше всех и как за 4 секунды Python «проглотил» полмиллиона строк — читайте в статье.

Читать далее

Рынок труда тестировщиков-автоматизаторов в России (2025)

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели13K

Спрос на QA-специалистов в России продолжает расти, однако конкуренция в этой нише очень высокая. Так, по данным Computerra, в числе наиболее востребованных ИТ-специалистов в 2025 году оказались именно тестировщики и специалисты по написанию автотестов. При этом работодатели всё чаще требуют от тестировщиков навыков уровня начинающего разработчика: знания бэкенда, фронтенда, работы с БД и умения писать скрипты для автотестов. В этой статье мы подробно рассмотрим актуальные языки программирования, фреймворки и инструменты в автоматизации тестирования, требования работодателей, типичные этапы собеседований, а также рекомендации по подготовке.

Читать далее

Двойное дно: реализуем свой формат шифрования .CHA на Python и прячем его в стеганографии

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели6.3K

Привет, Хабр! Когда речь заходит о защите конфиденциального файла, на ум приходят два пути: шифрование и стеганография. Первый делает файл нечитаемым для посторонних. Второй — делает сам факт существования файла незаметным. А что, если объединить эти два подхода, создав по-настоящему надежное "двойное дно" для ваших данных?

В этой статье мы не просто обсудим теорию, а пошагово, с подробным разбором кода, создадим собственный простой и надежный формат шифрования .cha (сокращение от Chameleon) на Python. А затем покажем, как его синергия со стеганографией в нашем приложении «ChameleonLab» обеспечивает многоуровневую защиту.

Читать далее

Отладка «Тетрисом»: Пошаговый гайд по созданию и сокрытию классической игры в вашем проекте

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели6.9K

Привет, Хабр! У каждого разработчика в серьезном проекте наступает момент, когда хочется отвлечься и написать что-то для души. Что-то простое, классическое, но в то же время увлекательное. Часто такие "внутренние пет-проекты" становятся «пасхальными яйцами» — секретами для самых любопытных пользователей.

Сегодня мы расскажем, как и зачем мы спрятали в нашем приложении для стеганографии «ChameleonLab» классический «Тетрис». Это не просто история о «пасхалке», а пошаговый гайд с подробным разбором кода на Python и PyQt6, который покажет, что, несмотря на кажущуюся простоту, создание «Тетриса» — это интересная задача с множеством подводных камней.

Читать далее

40 млн GitHub-репозиториев: открытый датасет метаданных для анализа и обучения

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели7.2K

Я собрал датасет метаданных по ~40 млн публичных репозиториев GitHub. Внутри — звёзды, форки, лицензии, язык, описание, размер, дата создания и др. Схема по смыслу максимально совместима с GH Archive/GitHub API. Лицензия — MIT. Ниже — как скачать, что внутри и идеи использования.

Датасет: ibragim-bad/github-repos-metadata-40M

Читать далее

Храним секреты правильно: от .env файлов к Vault и Doppler. Практическое руководство

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели6.8K

Привет, Хабр! Все мы знаем золотое правило: никогда не хранить секреты в коде. Но на практике часто оказывается, что за этим строгим запретом скрывается лишь папка с .env-файлами на сервере, доступ к которой есть у половины команды. А потом случаются утечки, скомпрометированные API-ключи и паника.

Хранение секретов — это не про запреты, а про инструменты и процессы. В этой статье мы разберемся, как организовать управление секретами на профессиональном уровне, и посмотрим на два подхода: мощный самодостаточный HashiCorp Vault и элегантный developer-friendly Doppler.

Читать далее

Прятки в пикселях: вскрываем стеганографию с помощью статистики и Python

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели5.2K

Привет, Хабр! В наших прошлых статьях мы рассмотрели общие принципы работы стеганографии и создали многофункциональное приложение «ChameleonLab» для сокрытия данных. Но как насчет обратной задачи? Как понять, что в безобидной на вид картинке спрятано тайное послание?

Читать далее

Клик без промаха: комбинированный подход в автоматизации Windows-приложений на примере UWP

Уровень сложностиСредний
Время на прочтение17 мин
Охват и читатели6.7K

Привет, Хабр! Меня зовут Иван Калашников, я занимаюсь автотестированием в Инфовотч.

В мире web и тонких клиентов по-прежнему приходится тестировать классические приложения: Office apps, Explorer, Telegram, WhatsApp. Сегодня для примера мы возьмем WhatsApp.

Погрузившись в автоматизацию ручных кликов в приложениях Windows с помощью Python, я попробовал несколько известных библиотек, каждая из которых поодиночке оставляла ощущение «чего-то не хватает». PyAutoGUI не видит скрытые элементы, плохо находит элементы с экранами разного масштаба и разрешения, а pywinauto требует разбирать дерево элементов UIA (Microsoft UI Automation), которого может попросту не быть.

В этой статье разберём, как объединение этих инструментов позволяет обойти ограничения каждого и надёжно автоматизировать windows-приложения. Комбинация UI-ориентированных (pywinauto, Win32/UIA) и image-based (PyAutoGUI) техник остаётся самым гибким способом тестировать Windows-приложения. Но чтобы смесь действительно работала, нужны: сравнение бэкендов, явные ожидания, DPI-awareness.

Мы пройдем через ряд мини-кейсов — от кликов, поиска, отправки сообщения, до чтения текста с экрана и выясним, как справляется связка Python-библиотек.

Читать далее

Ближайшие события

Быстрый Django: всё, что нужно знать о производительности

Уровень сложностиПростой
Время на прочтение14 мин
Охват и читатели6.1K

Команда Python for Devs подготовила перевод статьи о том, как сделать Django-сайты быстрее. Автор разбирает два пути — «делать больше» (масштабирование инфраструктуры) и «делать меньше» (уменьшение задержек через оптимизацию кода и запросов). В статье — практические примеры, баг N+1, кэширование и инструменты вроде Django Debug Toolbar, Locust и APM.

Читать далее

RabbitMQ как инструмент «деградации с честью»

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели8.5K

Как построить микросервисы на RabbitMQ так, чтобы система не падала каскадом, а деградировала предсказуемо: outbox, mandatory, AE, идемпотентность, DLQ, приоритеты и реальные грабли из продакшена

Читать далее

Три уровня отслеживания в Яндекс Метрике: Level 3 — Measurement Protocol и виртуальные визиты

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели3.5K

Приветствую, Хабр! В прошлых двух статьях я рассмотрел варианты кастомизации Целей Яндекс Метрики, когда мы начинаем собирать не просто факт отправки, например, формы, но и смысл а еще и возможность досылать срабатывания целей произошедшие уже офлайн. В сумме это уже поможет улучшить точность вашей рекламы в том же Директе на +60-65%. А что нам дате точность? Чаще всего снижение CPC и CPA/ Сегодня же расскажу о, так называемом GOD Mode Метрики, когда любой чих можно превратить в нужное нам событие и отправить его в Метрику, к тому же оно еще и не потеряется, как офлайн-конверсия.

Читать далее

Как НЕ нужно писать автотесты на Python

Время на прочтение24 мин
Охват и читатели9K

Разбираем самые странные антипаттерны в автотестах на Python: от sleep(0.1) и стрелочек вниз до глобальных курсоров и "фреймворков" на 3500 строк. Почему так делать не стоит и какие есть взрослые альтернативы.

Читать далее

Случаи из разработки на асинхронных фреймворках в Python. Часть 1. FastAPI

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели6.7K

Асинхронность в Python кажется простой — добавил async/await, и всё летает. Но на практике синхронные вызовы внутри асинхронного кода превращаются в «бутылочное горлышко», блокируя event loop и приводя к непредсказуемым последствиям: от подвисших запросов до деградации производительности. Как разбираться в таком случае и почему важно знать особенности фреймворков в подкате...

Читать далее

Как локально и бесплатно распознать текст лекции или совещания и делать это регулярно

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели14K

В новостях всё чаще говорят об «ИИ‑диктофонах» — гаджетах, которые записывают каждый ваш разговор в течение дня, отправляют аудио в облако, превращают его в текст и даже готовят краткую сводку по итогам. Звучит футуристично, но такие решения стоят дорого, требуют постоянной подписки и вызывают вопросы о приватности.

Лично мне идея тотальной записи кажется избыточной. Зато куда практичнее другая задача: получить точную текстовую расшифровку лекции, доклада или публичного выступления. Чтобы потом не переслушивать часы аудио, а быстро найти нужную цитату или мысль простым поиском по тексту.

В этой статье я покажу, как построить такую систему без платных подписок и полностью под вашим контролем. Всё, что нужно — обычный диктофон за 1–3 тыс. рублей или даже просто приложение на телефоне — тогда затраты вообще равны нулю, и набор бесплатных, открытых программ, которые работают на вашем компьютере. Я купил диктофон для теста и поделюсь результатами.

Сердцем решения станет OpenAI Whisper — мощная технология распознавания речи от создателей ChatGPT. Главное её преимущество — она может работать полностью автономно на вашем ПК, не отправляя никуда ваши данные. К тому же Whisper распространяется как open‑source: исходный код и модели доступны бесплатно — вы можете скачать, использовать и при необходимости даже модифицировать.

Мои скрипты выложены на GitHub.

Кто что сказал

Обзор UDTF в PySpark

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели7.8K

Привет, Хабр!

Сегодня разберём фичу из PySpark — UDTF. Если раньше мы писали UDF и UDAF, то UDTF — это про функцию, которая запускается в секции FROM запроса и возвращает как бы несколько строк для каждой входной записи. Звучит круто.

UDTFs пригодятся, когда на один входной объект нужно получить множество выходных строк. Простой пример: у нас есть строка текста и мы хотим разделить её на слова так, чтобы каждое слово вышло отдельной строкой. Со стандартным UDF такое не сделать (он возвращает одно значение, например конкатенацию или длину). Но UDTF может делать цикл yield внутри и выдавать сколько угодно строк. Итак, приступим к делу.

Читать далее

Вклад авторов