Справочник Программиста
6.28K subscribers
1.36K photos
387 videos
64 files
1.71K 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 OpenCv

В данной статье напишем код для обрезки изображений на Python с использованием библиотеки OpenCv.

Работать программа будет следующим образом:
🔤 Выделение области: Пользователь выделяет область изображения, которую хочет обрезать.
🔤Сохранение обрезанного изображения: После выделения определённой области можно нажать на клавишу «C», и будет сохранено обрезанное изображение.
🔤Выход из программы: Для выхода из программы можно будет нажать на клавишу «Esc».

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

Nuitka - это компилятор Python, который преобразует Python-код в C и затем компилирует его в нативные исполняемые файлы. Это позволяет улучшить производительность Python-программ, так как скомпилированный код может выполняться быстрее, чем интерпретируемый.

Основные характеристики библиотеки:
🔵Производительность: Может значительно улучшить производительность приложений, особенно тех, которые требуют интенсивных вычислений.
🔵Совместимость: Совместим с большинством версий Python (2.6 и выше, включая Python 3.x) и поддерживает множество стандартных библиотек, включая NumPy и другие популярные пакеты.
🔵Компиляция в исполняемые файлы: Позволяет создавать независимые исполняемые файлы, которые не требуют установки Python на целевой машине.
🔵Поддержка многопоточности и асинхронного программирования: Хорошо работает с многопоточными и асинхронными программами, что позволяет эффективно использовать современные многоядерные процессоры.
🔵Лицензия: Распространяется под лицензией MIT, что делает его бесплатным и открытым для использования и модификации.

Пример компиляции скрипта:
python -m nuitka your_script.py


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

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

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

MicroRabbit - это легковесная библиотека для работы с микросервисами, которая реализует паттерн CQRS (Command Query Responsibility Segregation) и используется для упрощения взаимодействия между различными компонентами системы.

Основные характеристики библиотеки:
🔵CQRS: Разделяет команды и запросы, что позволяет более эффективно управлять состоянием и изменениями в приложении.
🔵Интеграция с RabbitMQ: Использует RabbitMQ как брокер сообщений для асинхронной обработки команд и запросов.
🔵Поддержка событий: Возможность отправки и обработки событий между микросервисами, что способствует созданию более реактивной архитектуры.
🔵Модульность: Позволяет разрабатывать модули, которые могут быть независимо развернуты и масштабированы.
🔵Упрощение кода: С помощью MicroRabbit можно сократить количество кода, необходимого для реализации сложной логики взаимодействия между сервисами.

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

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

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6❤‍🔥2👍2
Media is too big
VIEW IN TELEGRAM
Код для добавления текстового водяного знака на Python

Для работы с изображением и добавления текстового водяного знака в коде используется библиотека Pillow.

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

from PIL import Image, ImageDraw, ImageFont


def add_text_watermark(input_image_path, output_image_path, text, position, font_path=None, font_size=36,
font_color=(255, 255, 255), opacity=128):
# Открываем изображение
image = Image.open(input_image_path).convert("RGBA")

# Создаём новое изображение с теми же размерами, но для прозрачного слоя
txt_layer = Image.new("RGBA", image.size, (255, 255, 255, 0))

# Создаем объект для рисования
draw = ImageDraw.Draw(txt_layer)

# Загружаем шрифт (используем шрифт по умолчанию, если не указан)
if font_path:
font = ImageFont.truetype(font_path, font_size)
else:
font = ImageFont.load_default()

# Получаем ограничивающий прямоугольник текста
text_bbox = draw.textbbox((0, 0), text, font=font)
text_width = text_bbox[2] - text_bbox[0]
text_height = text_bbox[3] - text_bbox[1]

# Позиционирование водяного знака
if position == 'center':
position = ((image.width - text_width) // 2, (image.height - text_height) // 2)
elif position == 'bottom_right':
position = (image.width - text_width - 15, image.height - text_height - 15)

# Добавляем текст с прозрачностью
draw.text(position, text, font=font, fill=(*font_color, opacity))

# Объединяем текстовый слой с оригинальным изображением
watermarked_image = Image.alpha_composite(image, txt_layer)

# Конвертируем обратно в RGB (если нужно для сохранения в JPEG)
watermarked_image = watermarked_image.convert("RGB")

# Сохраняем результат
watermarked_image.save(output_image_path)


# Пример использования
add_text_watermark(
input_image_path="image.jpg",
output_image_path="watermarked_image.jpg",
text="© Your Watermark",
position="bottom_right",
font_path="arial.ttf", # Указываем путь к шрифту (если не указано, используется шрифт по умолчанию)
font_size=50, # Размер текста
font_color=(255, 255, 255), # Цвет текста (белый)
opacity=128 # 50% прозрачности
)


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

Библиотека num2words используется для преобразования чисел в текст, т.е. она позволяет конвертировать числовые значения в их словесное представление.

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

Пример преобразования чисел на английский язык
from num2words import num2words

print(num2words(123))
# Вывод: 'one hundred and twenty-three'


Пример преобразования чисел на русский язык
from num2words import num2words

print(num2words(123, lang='ru'))
# Вывод: 'сто двадцать три'


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

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

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥6❤‍🔥3
Спасибо анониму за донат (поздно заметил), последний раз до него он был аж 414 дней назад 😅
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤‍🔥7
Библиотека Reflex в Python

Библиотека Reflex (ранее известная как Pynecone) предназначена для создания полноценных веб-приложений, где весь код (и фронтенд, и бэкенд) пишется на Python, без необходимости изучать JavaScript.

Основные особенности библиотеки:
🔵Чистый Python: Весь код приложения пишется на Python, что упрощает процесс разработки для тех, кто уже знаком с языком.
🔵Мгновенное развёртывание: После создания приложения его можно развернуть одной командой или хостить на собственном сервере.
🔵Гибкость: Встроено более 60 компонентов для создания пользовательских интерфейсов, с возможностью создания собственных компонентов.

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

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

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

В данном shorts напишем код для создания скриншота области экрана по координатам на Python.

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

Первый способ:

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

from PIL import ImageGrab

# Задаём координаты (x1, y1) и (x2, y2) для области
x1 = 100 # Левый верхний угол по оси X
y1 = 100 # Левый верхний угол по оси Y
x2 = 400 # Правый нижний угол по оси X
y2 = 300 # Правый нижний угол по оси Y

# Делаем скриншот заданной области
screenshot = ImageGrab.grab(bbox=(x1, y1, x2, y2))

# Сохраняем скриншот
screenshot.save('screenshot.png')


Второй способ:

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

import pyscreenshot as ImageGrab

# Задаём координаты области
x1, y1, x2, y2 = 100, 100, 400, 300

# Делаем скриншот
screenshot = ImageGrab.grab(bbox=(x1, y1, x2, y2))

# Сохраняем скриншот
screenshot.save('screenshot.png')


Третий способ:

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

import pyautogui

# Задаём координаты (x, y) и размеры (width, height) области
x = 100
y = 100
width = 300
height = 200

# Делаем скриншот определённой области
screenshot = pyautogui.screenshot(region=(x, y, width, height))

# Сохраняем скриншот
screenshot.save('screenshot.png')


➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥7🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
Утилита Clark в Python

Утилита Clark предназначена для работы с аудио и видео в командной строке.

Предоставляет текстовый пользовательский интерфейс (TUI) для воспроизведения медиафайлов и создания временных меток с высокой точностью, что удобно при обрезке или разделении медиафайлов.

Основные возможности утилиты:
🔵Создание временных меток и воспроизведение: Позволяет воспроизводить аудио и видео и создавать временные метки в нужных местах. Можно быстро перемещаться по файлу, ставить метки и при необходимости удалять их.
🔵Обрезка и разделение файлов: Её можно использовать для обрезки ненужных частей или разделения медиафайлов по временным меткам.
🔵Управление через горячие клавиши: Предоставляет набор удобных сочетаний клавиш для управления воспроизведением.
🔵Использование MPV и FFMPEG: Для воспроизведения файлов Clark использует медиаплеер MPV, а для обрезки и разделения - FFMPEG.

➡️Установка: pip install https://github.com/wong-justin/clark/archive/main.zip

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

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

Библиотека emoji предназначена для работы с эмодзи, упрощая процесс их добавления и использования в тексте.

Поддерживает добавление эмодзи как по их коротким кодам (например, :smile:), так и непосредственно через их Unicode-символы.

Пример добавления эмодзи:
import emoji
print(emoji.emojize("Python is fun :snake:"))
# Вывод: Python is fun 🐍


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

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

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

Для архивации в коде используются стандартные модули os и zipfile

import zipfile
import os


def archive_folder(zip_name, folder_path):
# Создаём новый ZIP-архив с именем zip_name
# Параметр 'w' означает, что мы создаём архив с нуля, ZIP_DEFLATED для сжатия
with zipfile.ZipFile(zip_name, 'w', zipfile.ZIP_DEFLATED) as zipf:
# Используем os.walk для рекурсивного обхода всех файлов и папок внутри folder_path
for root, dirs, files in os.walk(folder_path):
# Проходимся по всем файлам в текущей директории
for file in files:
# Получаем полный путь к файлу
file_path = os.path.join(root, file)
# Добавляем файл в архив, сохраняя относительный путь от корневой папки
zipf.write(file_path, os.path.relpath(file_path, folder_path))
# Выводим сообщение о том, что файл был добавлен
print(f'Файл {file_path} добавлен в архив.')


# Пример использования
folder_to_archive = 'my_folder' # Указываем папку, которую хотим архивировать
archive_name = 'my_folder_archive.zip' # Указываем имя для создаваемого архива

# Вызываем функцию архивации папки
archive_folder(archive_name, folder_to_archive)


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

Библиотека PandasGUI предоставляет графический интерфейс для работы с данными в формате DataFrame из библиотеки pandas.

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

Основные возможности библиотеки:
🔵Графический интерфейс для DataFrame: Возможность загружать данные из разных источников (CSV, Excel, SQL и т.д.) и просматривать их в формате таблицы. Также доступны такие функции, как сортировка, фильтрация и групповое редактирование данных через удобные меню.
🔵Визуализация данных: Включает инструменты для создания графиков и диаграмм без написания кода.
🔵Работа с большими объемами данных: Поддерживает работу с большими наборами данных, используя механизмы отложенной загрузки и обработки данных по частям.
🔵Возможность работы с несколькими DataFrame: Возможность загружать и управлять несколькими наборами данных одновременно.
🔵Легкость использования: Ориентирована как на новичков, так и на опытных пользователей. Она делает работу с данными в pandas более интерактивной и интуитивно понятной.

Пример использования библиотеки:
import pandas as pd
from pandasgui import show

# Создаем DataFrame
data = pd.DataFrame({
'Имя': ['Анна', 'Борис', 'Виктор', 'Галина'],
'Возраст': [23, 30, 35, 29],
'Город': ['Москва', 'Санкт-Петербург', 'Новосибирск', 'Казань']
})

# Запускаем PandasGUI
show(data)


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

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

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

Библиотека Jedi предназначена для поддержки интеллектуального анализа кода, автодополнения и навигации в Python-коде.

Используется в различных редакторах кода, таких как Vim, Emacs, Sublime Text, а также в некоторых IDE для предоставления таких функций, как:
🔵Автодополнение кода на основе контекста.
🔵Навигация по исходному коду, включая переход к определению функции или переменной.
🔵Интеллектуальный анализ кода с учётом типов.
🔵Проверка кода на предмет возможных ошибок.

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

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

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8❤‍🔥3👍3
Media is too big
VIEW IN TELEGRAM
👀 Фреймворк Django-Unicorn в Python

Фреймворк Django-Unicorn добавляет функциональность реактивных компонентов в шаблоны Django. Позволяет создавать интерактивные элементы без необходимости изучать новый язык шаблонов или использовать сложные JavaScript-фреймворки.

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

Основные особенности фреймворка:
🔵Компоненты: объединение логики Python и HTML-шаблонов в одном модуле.
🔵Реактивные компоненты: автоматическое обновление интерфейса при изменении данных или событиях.
🔵Синхронизация состояния: динамическое обновление данных между клиентом и сервером без перезагрузки страницы.
🔵Асинхронная работа: поддержка асинхронных методов для обработки запросов в фоновом режиме.
🔵Минимальное использование JavaScript: позволяет создавать интерактивные интерфейсы с минимальной потребностью в JS.
🔵Легкая интеграция: простая установка и настройка в проектах Django.
🔵Совместимость с шаблонами Django: полная поддержка работы с Django ORM и другими функциями фреймворка.
🔵Поддержка событий и действий: возможность вызова серверных методов при взаимодействии с элементами интерфейса (клики, ввод данных и т.д.).

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

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

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

Библиотека clean-text предназначена для очистки текстов от нежелательных символов и форматирования.

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

Основные возможности библиотеки:
🔵Удаление нежелательных символов: Помогает избавиться от символов, которые могут мешать обработке текста, например, эмодзи, спецсимволов и других нежелательных элементов.
🔵Нормализация текста: Позволяет нормализовать текст, что включает в себя приведение его к нижнему регистру, удаление или замену специфических символов и строк.
🔵Удаление HTML-тегов: Может быть полезна для удаления тегов HTML из текста, чтобы упростить его дальнейшую обработку.
🔵Работа с символами Unicode: Предоставляет функциональность для обработки символов Unicode и их замены на стандартные символы.

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

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

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6❤‍🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
👀 Библиотека tktimepicker в Python

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

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

Основные возможности
🔵Выбор времени: Пользователи могут выбирать часы и минуты.
🔵Настраиваемость: Виджет можно настраивать по своему усмотрению, изменяя такие параметры, как цвет, размеры и шрифты.
🔵Простота использования: Легко интегрируется в существующие приложения на tkinter, что позволяет быстро добавить функционал выбора времени.
🔵Поддержка форматов: Возможность настроить формат времени (например, 12-часовой или 24-часовой).

Пример использования библиотеки:
import tkinter as tk
from tktimepicker import AnalogPicker, AnalogThemes

# Создаём основное окно приложения
root = tk.Tk()

# Создаём виджет выбора времени и передаем ему основное окно
time_picker = AnalogPicker(root)
# Размещаем виджет, позволяя ему расширяться и заполнять все доступное пространство
time_picker.pack(expand=True, fill="both")

# Создаём объект темы для виджета выбора времени
theme = AnalogThemes(time_picker)
# Устанавливаем тему Dracula для виджета
theme.setDracula()

root.mainloop()


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

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

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥2❤‍🔥1
Media is too big
VIEW IN TELEGRAM
Код для добавления блюра определённой области изображения на Python

Для добавления блюра в коде используется библиотека Pillow.

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

from PIL import Image, ImageFilter


def add_blur_to_area(image_path, output_path, box):
# Открываем изображение
image = Image.open(image_path)

# Извлекаем область для размытия
area = image.crop(box)

# Применяем блюр к области
blurred_area = area.filter(ImageFilter.GaussianBlur(radius=10))

# Вставляем размытую область обратно в изображение
image.paste(blurred_area, box)

# Сохраняем новое изображение
image.save(output_path)


# Пример использования
image_path = 'image.jpg' # Путь к вашему изображению
output_path = 'output_image.jpg' # Путь к сохранению нового изображения
box = (50, 900, 700, 1400) # Задаём координаты области (x1, y1, x2, y2)

add_blur_to_area(image_path, output_path, box)


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