Just Python
9.83K subscribers
4.72K photos
17 videos
4.71K links
🐍Простое изучение Python.

Ссылка: @Portal_v_IT

Сотрудничество: @oleginc, @tatiana_inc

Канал на бирже: telega.in/c/justpython_it

РКН: clck.ru/3MnbSc
Download Telegram
👩‍💻 Хватит учить только синтаксис, начинай делать реальные проекты!

Python Ready — авторский канал, где Python перестаёт быть только теорией и становится рабочим инструментом. Мини-проекты, боты, советы, разборы задач, гайды и шпаргалки для каждого программиста.

🔥 Советую подписаться: @python_ready
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Построчное чтение больших файлов

Для больших файлов нецелесообразно загружать весь контент в память

Конструкция for line in file в сочетании с генератором yield позволяет читать огромные файлы построчно, загружая в оперативную память ровно одну строку за раз вместо всего файла целиком, что защищает вашу программу от вылета по нехватке памяти (OutOfMemory)

#theory // Just Python
Запись и добавление в файл

Параметр mode контролирует режим открытия файла: 'w' для перезаписи, 'a' для добавления в конец.

#theory // Just Python
Возвращение легенды: самый востребованный практикум Зерокодера по Claude Code снова пройдёт в августе.

CEO университета Зерокодер Кирилл Пшинник проведёт ещё один бесплатный онлайн-практикум, где в прямом эфире покажет, почему вокруг Claude Code столько шума и как использовать его на полную мощность.

На практикуме разберут:

• Как получить доступ к Claude Code из России и начать работать без ограничений;
• Как запускать сразу несколько ИИ-агентов для одного проекта;
• Как за 15 минут собрать рабочий сайт практически без ручного кода;
• Как автоматизировать аналитику и рутинные задачи без дополнительных сервисов;

Бонус: в конце практикума расскажем, как пользоваться Claude Code бесплатно и оформить виртуальную карту для оплаты других AI-сервисов

P.S. Это специальный повтор одного из самых популярных практикумов Зерокодера по Claude Code. Жмите на ссылку и успевайте зарегистрироваться!
Управление путями к файлам

Модуль pathlib значительно упрощает работу с путями к файлам

pathlib появился в Python 3.4 и стал одним из моих любимых модулей. Он заменяет множество функций из os.path и предоставляет более интуитивный интерфейс.

#theory // Just Python
Асинхронная обработка файлов с использованием aiofiles

Cтандартные операции с файлами блокируют выполнение программы. В асинхронном мире это неприемлемо. На помощь приходит библиотека aiofiles, которая предоставляет асинхронный интерфейс для операций ввода-вывода.

Эти базовые функции аналогичны синхронным версиям, но с ключевыми словами async/await. Однако реальная мощь проявляется при параллельной обработке множества файлов (смотри метод process_multiple_files)

При массовой асинхронной записи я столкнулся с проблемой перегрузки диска. Решение - добавить семафор для ограничения количества одновременных операций (смотри метод controlled_file_processing)

#theory // Just Python
Работа с CSV файлами

CSV - один из самых распространенных форматов для обмена данными

Использование связки csv.DictReader и csv.DictWriter превращает каждую строчку таблицы в удобный Python-словарь, избавляя от ручного разбора индексов, а обязательный аргумент newline='' намертво защищает ваши файлы от появления пустых строк при переносе кода между Windows и Linux.

#theory // Just Python
Обработка JSON данных

JSON стал стандартом для API и конфигурационных файлов.

pathlib превращает обычные текстовые пути в «умные» объектно-ориентированные структуры, позволяя складывать папки через лаконичный слэш /, одной командой проверять существование директорий и на лету собирать файлы по маске с помощью метода glob.

Обратите внимание на параметр ensure_ascii=False - он позволяет корректно сохранять Unicode символы, включая кириллицу, без экранирования.

#theory // Just Python
Можно ли собрать полезный рабочий инструмент с ИИ за один вечер?
Проверим на первой бесплатной лаборатории вайб-кодинга от Зерокодера

Не будем тратить эфир на теорию и бесконечные промпты. Возьмем 100 реальных отзывов клиентов и прямо на глазах соберем приложение, которое само их проанализирует.

Но главное – формат самой лаборатории.

Это не запись заранее подготовленного кейса и не лекция, где эксперт показывает идеальный результат. Задачу собираем прямо в Zoom: от постановки до готового инструмента. Во время занятия можно задавать вопросы ведущему и разбираться с процессом вместе.

В итоге получается реальный продукт, который можно использовать для конкурентного анализа, поиска идей и улучшения своих продуктов или адаптировать под задачи клиентов и продавать как готовое решение.

И это только первая задача. Каждую неделю – новый кейс и новый инструмент: приложения, дашборды, автоматизации и AI-помощники.

Забрать первое участие в лаборатории бесплатнопо ссылке
Базовое использование multiprocessing

Python из-за GIL (Global Interpreter Lock) не может эффективно использовать многопоточность для CPU-интенсивных задач. Но это не значит, что мы лишены возможности распараллеливать вычисления. Для таких случаев у нас есть модули multiprocessing и concurrent.futures, позволяющие задействовать все ядра процессора.

Pool создает группу рабочих процессов и распределяет задачи между ними. Параметр processes определяет количество процессов - если не указан, используется количество, равное числу ядер CPU

#theory // Just Python
Забрать подписки на сервисы можно на ggsel ⚾️

На сайте собраны подписки на YT Premium, Spotify, нейронки и другой софт ☕️

Иностранные карты для оплаты не потребуются — на ggsel все безопасно оплачивается с обычных карт российских банков 🫰
Please open Telegram to view this post
VIEW IN TELEGRAM
Продвинутый подход с concurrent.futures

Модуль concurrent.futures, появившийся в Python 3.2, предоставляет более высокоуровневый интерфейс

Этот подход дает три ключевых преимущества:
1. Обработка результатов по мере готовности через as_completed().
2. Более удобная обработка исключений.
3. Простое переключение между процессами и потоками (для IO-bound задач достаточно заменить .ProcessPoolExecutor на ThreadPoolExecutor)

#theory // Just Python
Передача дополнительных аргументов

Часто функции обработки нужны дополнительные параметры.

Ловушка: передача негпикличных объектов между процессами. Python использует сериализацию для передачи данных между процессами, но не все объекты можно сериализовать стандартными средствами. Для сложных случаев стоит использовать библиотеки вроде dill или cloudpickle.

Эти инструменты параллельных вычислений стали неотъемлемой частью моего арсенала при работе с большими объемами данных. Конечно, добавление параллелизма усложняет код и отладку, но производительность часто стоит этих усилий, особенно когда речь идет о сокращении времени выполнения с часов до минут.

#theory // Just Python
Базовые HTTP запросы с requests

Библиотека requests - настоящая находка для разработчика. Она делает HTTP-запросы интуитивно понятными

Я всегда добавляю параметр timeout, чтобы избежать зависания программы при проблемах с сетью. Однажды потерял два часа, выясняя, почему скрипт "завис" - оказалось, что без таймаута запрос к недоступному серверу просто ждал вечно.

#theory // Just Python
Асинхронные запросы с aiohttp

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

В одном из проектов замена последовательных запросов на асинхронные сократила время выполнения с 12 секунд до менее чем 1 секунды. Главное - используйте одну сессию для всех запросов, так как создание сессии - дорогостоящая операция.

#theory // Just Python
Обработка ошибок и повторные попытки

API могут быть нестабильными, поэтому всегда стоит реализовать механизм повторных попыток.

Экспоненциальная задержка между попытками (backoff_factor * (2 ** retries)) помогает избежать перегрузки сервера и дает ему время восстановиться.

#theory // Just Python
Проверка типов данных

При отладке или работе с незнакомым API бывает полезно узнать тип и структуру объекта.

Этот простой инструмент неоднократно выручал меня при работе с API, возвращающими сложно структурированные данные.

#theory // Just Python
Безопасное получение вложенных значений

Доступ к вложенным атрибутам объектов или вложенным ключам словарей часто приводит к ошибкам.

Эта функция может сократить количество проверок в коде на порядок, сделав его намного чище и понятнее.

#theory // Just Python