Справочник Программиста
6.37K subscribers
1.29K photos
375 videos
64 files
1.62K links
По рекламе - @it_start_programmer
Мои курсы - @courses_from_it_start_bot
Сайт - https://it-start.online/
YouTube - https://www.youtube.com/@it_start
Реклама на бирже - https://telega.in/c/programmersGuide_1

Предложить идею: @it_start_suggestion_bot
Download Telegram
👀 Библиотека python-magic в Python

Библиотека python-magic — это удобный интерфейс для работы с libmagic, популярной утилитой, которая определяет типы файлов на основе их содержимого, а не по расширению.

С помощью этой библиотеки вы можете быстро узнать, что представляет собой файл, например, является ли он изображением, текстом, PDF-документом и т.д.

Основные возможности библиотеки:
🔵Определение типа файла на основе содержимого.
🔵Получение MIME-типа файла.
🔵Определение типа данных из буфера байтов.
🔵Указание пути к пользовательскому файлу базы данных magic.mgc.
🔵Работа с различными типами файлов: текст, изображения, видео, архивы и др.
🔵Кроссплатформенность: поддержка Linux, Windows и macOS.

➡️Установка библиотеки: pip install python-magic

📱 Репозиторий

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤‍🔥3
DocETL — это инструмент, предназначенный для извлечения, преобразования и загрузки данных из документов.

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

Основные особенности:
🔵Поддержка форматов PDF, DOCX и TXT.
🔵Извлечение текста из сложных документов с сохранением структуры.
🔵Очистка, нормализация и анализ данных.
🔵Сохранение преобразованных данных в базы данных или другие форматы.
🔵Специализированные функции для анализа медицинских терминов.
🔵Выявление и обработка чувствительных данных.
🔵Возможность подключения пользовательских функций для обработки данных.
🔵Интеграция с другими библиотеками и проектами.

➡️Установка библиотеки: pip install docetl

📱 Репозиторий
⚙️ Документация

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤‍🔥21🔥1
👀 Библиотека wheel в Python

Библиотека wheel используется для работы с форматом wheel — стандартом для упрощённой упаковки и установки Python-пакетов.

Wheel-пакеты (*.whl) представляют собой предварительно скомпилированные дистрибутивы Python-пакетов, которые можно быстро и эффективно устанавливать через pip.

Основные возможности библиотеки:
🔵Создание wheel-пакетов из исходного кода.
🔵Распаковка содержимого wheel-пакетов.
🔵Проверка валидности wheel-пакетов.
🔵Упрощение установки пакетов благодаря предсобранным бинарникам.
🔵Совместимость с инструментами сборки, такими как setuptools.
🔵Поддержка работы с платформозависимыми и универсальными пакетами.
🔵Ускорение установки пакетов через pip.
🔵Автоматизация процесса упаковки и развёртывания Python-проектов.

➡️Установка библиотеки: pip install wheel

📱 Репозиторий
⚙️ Документация

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥3👍32
👀 Библиотека python-slugify в Python

Библиотека python-slugify позволяет конвертировать строки в удобный для использования формат "slug".

Slug — это короткий, человекочитаемый идентификатор, часто используемый в URL для замены пробелов и специальных символов на безопасные и удобные для чтения символы (обычно дефисы).

Основные возможности библиотеки:
🔵Замена пробелов и спецсимволов: Преобразует пробелы, символы пунктуации и спецсимволы в дефисы.
🔵Поддержка Unicode: Поддерживает символы различных языков, включая кириллицу.
🔵Транслитерация: Может автоматически преобразовывать текст из одного алфавита в другой (например, кириллицу в латиницу).
🔵Настраиваемый разделитель: Позволяет задавать любой разделитель вместо стандартного дефиса.
🔵Поддержка кастомных функций обработки текста: Возможность использовать собственные функции для обработки строк.

➡️Установка библиотеки: pip install python-slugify

📱 Репозиторий

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5❤‍🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Код для сканирования на наличие дубликатов файлов по хэшу с логированием на Python

Для сканирования на наличие дубликатов файлов по хэшу с логированием в коде используются стандартные библиотеки os, hashlib, logging и typing.

import os
import hashlib
import logging
from typing import Dict

# Настройка логирования
logging.basicConfig(
level=logging.INFO,
format="%(asctime)s - %(levelname)s - %(message)s",
handlers=[
logging.FileHandler("duplicates.log", encoding="utf-8"), # Лог записывается в файл
logging.StreamHandler() # Лог также выводится в консоль
]
)


def get_file_hash(file_path: str, chunk_size: int = 65536) -> str:
hasher = hashlib.md5() # Создаем объект хэша MD5
try:
# Открываем файл в бинарном режиме для чтения
with open(file_path, 'rb') as file:
# Читаем файл частями, чтобы не загружать весь файл в память
while chunk := file.read(chunk_size):
hasher.update(chunk) # Обновляем хэш с помощью очередного блока данных
return hasher.hexdigest() # Возвращаем итоговый хэш файла
except FileNotFoundError:
logging.error(f"Файл не найден: {file_path}") # Логируем ошибку, если файл отсутствует
raise
except PermissionError:
logging.error(f"Нет доступа к файлу: {file_path}") # Логируем ошибку, если нет прав доступа
raise


def find_duplicates(folder_path: str) -> None:
# Проверяем, существует ли указанная директория
if not os.path.exists(folder_path):
logging.error(f"Указанная директория не существует: {folder_path}")
return

# Словарь для хранения хэшей файлов и их путей
files_hash: Dict[str, str] = {}
# Проходимся по всем папкам, подкаталогам и файлам в директории
for root, dirs, files in os.walk(folder_path):
for file in files: # Обрабатываем каждый файл в текущей директории
file_path = os.path.join(root, file) # Формируем полный путь к файлу
try:
# Вычисляем хэш текущего файла
file_hash = get_file_hash(file_path)
if file_hash in files_hash:
# Если хэш уже есть в словаре, то найден дубликат
logging.info(f"Дубликат найден: {file_path} и {files_hash[file_hash]}")
else:
# Если хэша нет в словаре, добавляем файл в словарь
files_hash[file_hash] = file_path
except Exception as e:
# Логируем любые ошибки, возникшие при обработке файла
logging.warning(f"Не удалось обработать файл {file_path}: {e}")


if __name__ == "__main__":
# Пример: поиск дубликатов в указанной директории
target_folder = r"C:\Users\User\Documents"
find_duplicates(target_folder)


➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥4❤‍🔥2
👀 Библиотека Urwid в Python

Библиотека Urwid предназначена для создания консольных пользовательских интерфейсов (CUI).

Поддерживает расширенные функции, такие как управление вводом с клавиатуры, мыши, раскраска текста, а также динамическое изменение размеров виджетов.

Основные возможности библиотеки:
🔵Гибкая система виджетов: Предоставляет множество встроенных виджетов, таких как кнопки, поля ввода, текстовые метки, списки и диалоги, которые можно комбинировать для создания интерфейсов.
🔵Поддержка Unicode: Поддерживает отображение текста в Unicode, что позволяет работать с различными языками и символами.
🔵Динамическое изменение размеров: Адаптируется к изменениям размеров терминала, что полезно для пользователей с различными разрешениями экрана.
🔵Цветовые схемы: Поддерживаются настраиваемые цветовые палитры для оформления интерфейсов.
🔵Обработка событий: Предоставляет удобные инструменты для работы с событиями, включая ввод с клавиатуры, мыши и таймеры.
🔵Асинхронность: Легко интегрируется с асинхронными фреймворками, такими как asyncio, что делает библиотеку подходящей для сетевых приложений и задач реального времени.

➡️Установка библиотеки: pip install urwid

📱 Репозиторий
⚙️ Документация

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥2👍2🔥2🤨1
This media is not supported in your browser
VIEW IN TELEGRAM
🖼Код для получения случайных изображений на Python

Для получения случайных изображений мы воспользуемся Lorem Picsum API.

Для обращения к API в коде используется библиотека requests, а для работы с изображением - Pillow и io.

➡️Установка библиотек: pip install requests Pillow

import requests
from PIL import Image
from io import BytesIO


def get_random_image(width: int, height: int):
"""
Получает случайное изображение с Lorem Picsum API.

:param width: Ширина изображения.
:param height: Высота изображения.
:return: Объект PIL.Image или None в случае ошибки.
"""
url = f"https://picsum.photos/{width}/{height}"
try:
response = requests.get(url)
response.raise_for_status() # Проверка на ошибки HTTP
image = Image.open(BytesIO(response.content))
return image
except requests.RequestException as e:
print(f"Ошибка при запросе изображения: {e}")
return None


def save_image(image: Image.Image, filename: str):
"""
Сохраняет изображение в файл.

:param image: Объект PIL.Image.
:param filename: Имя файла для сохранения.
"""
try:
image.save(filename)
print(f"Изображение сохранено как {filename}")
except Exception as e:
print(f"Ошибка при сохранении изображения: {e}")


if __name__ == "__main__":
# Указываем размеры изображения
width = 800
height = 600

# Получаем случайное изображение
random_image = get_random_image(width, height)
if random_image:
# Сохраняем изображение в файл
save_image(random_image, "random_image.jpg")


➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3❤‍🔥2👍1
👀 Библиотека pyinstrument в Python

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

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

Основные особенности библиотеки:
🔵Простота использования: Для использования библиотеки достаточно просто импортировать её и запустить профилирование.
🔵Текстовый и HTML-отчёт: Результаты профилирования можно вывести в виде текстового отчёта в консоли или в более наглядном HTML-формате.
🔵Точное измерение времени: Использует стеки вызовов для точного измерения времени, затрачиваемого на выполнение каждой функции, включая время, проведённое в подфункциях.
🔵Поддержка многозадачности: Поддерживает профилирование многозадачных приложений, например, когда используется асинхронное программирование с asyncio.

➡️Установка библиотеки: pip install pyinstrument

📱 Репозиторий
⚙️ Документация

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥3❤‍🔥2
Tkinter Designer — это инструмент для упрощения создания пользовательских интерфейсов (GUI) в Python.

Автоматизирует процесс разработки интерфейса: вместо ручного написания кода для каждого элемента интерфейса, разработчики могут использовать визуальный редактор Figma, а затем сгенерировать Python-код на основе созданного макета.

Основные особенности:
🔵Интеграция с Figma для создания макетов интерфейсов.
🔵Автоматическая генерация Python-кода на основе макетов.
🔵Простота использования, подходящая для новичков.
🔵Поддержка графических ресурсов из Figma (иконки, изображения, цвета).
🔵Экономия времени на разработке пользовательских интерфейсов.

➡️Установка библиотеки: pip install tkdesigner

📱 Репозиторий
⚙️ Инструкция

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥6🔥2
👀 Библиотека Django-cachalot в Python

Библиотека Django-cachalot предназначена для кэширования запросов к базе данных в Django.

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

Основные возможности:
🔵Автоматическое кэширование SELECT-запросов ORM.
🔵Автоматическая инвалидизация кэша при изменении данных (INSERT, UPDATE, DELETE).
🔵Поддержка сложных запросов, включая JOIN, аннотации, агрегации и подзапросы.
🔵Совместимость с основными базами данных Django (PostgreSQL, MySQL, SQLite).
🔵Поддержка популярных бекендов кэширования (Redis, Memcached и др.).

➡️Установка библиотеки: pip install django-cachalot

📱 Репозиторий
⚙️ Документация

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤‍🔥3🔥1
👀 Библиотека CairoSVG в Python

Библиотека CairoSVG позволяет конвертировать SVG в другие форматы, такие как PNG, PDF, PostScript и т.д.

Основные возможности библиотеки:
🔵Конвертация SVG в PNG: Преобразование в растровые изображения для использования в веб-разработке или приложениях.
🔵Конвертация SVG в PDF: Удобно для создания отчетов и документов.
🔵Конвертация в PostScript: Полезно для полиграфической печати.
🔵Поддержка различных особенностей SVG: Обрабатывает пути, градиенты, текст, стили и трансформации.

➡️Установка библиотеки: pip install CairoSVG

📱 Репозиторий
⚙️ Документация

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥3👍2🔥1
Отображение календаря на Python

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

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤‍🔥3🔥1
👀 Библиотека Inflect в Python

Библиотека Inflect используется для генерации и преобразования чисел в текстовые строки, а также для работы с числами в различных форматах (например, запись чисел словами или преобразование в слова для различных форм числительных).

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

Основные возможности библиотеки:
🔵Преобразование чисел в текстовые строки: Преобразование целых и дробных чисел в текст.
🔵Генерация порядковых числительных: Преобразование чисел в порядковые числительные.
🔵Генерация форм множественного числа: Преобразование существительных в форму множественного числа в зависимости от числа.
🔵Преобразование чисел в валютные форматы: Форматирование чисел как валютные суммы.
🔵Определение форм числительных: Приведение числительных в нужную форму для правильного использования.
🔵Генерация текста с артиклями: Добавление артиклей перед числами и словами.

➡️Установка библиотеки: pip install inflect

📱 Репозиторий

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥2👍2🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Код для получения цен на зарубежные акции на Python

Для получения цен на зарубежные акции в коде используется библиотека yfinance.

➡️Установка библиотек: pip install yfinance

import yfinance as yf


def get_last_price(stock_symbol):
"""
Получить последнюю цену акции.

:param stock_symbol: Символ акции (например, "AAPL")
:return: Последняя цена или сообщение об ошибке.
"""
try:
stock = yf.Ticker(stock_symbol)
data = stock.history(period='1d')
if data.empty:
if stock.info.get("regularMarketPrice") is None:
return f"Данные по '{stock_symbol}' не найдены или акция делистирована. Проверьте правильность ввода."
else:
return f"Данные по '{stock_symbol}' недоступны для выбранного периода."
last_price = data['Close'].iloc[-1]
return f"Последняя цена акции {stock_symbol}: {last_price} USD"
except Exception as e:
return f"Произошла ошибка при получении данных: {e}"


if __name__ == "__main__":
# Запрос символа акции у пользователя
stock_symbol = input("Введите символ акции (например, AAPL): ")

# Вывод последней цены
print(get_last_price(stock_symbol))


➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥5👍3🔥3