Справочник Программиста
6.36K subscribers
1.3K photos
381 videos
64 files
1.64K 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
This media is not supported in your browser
VIEW IN TELEGRAM
Код для создания таймлапса из видео на Python

Для создания таймлапса из видео, в коде используется библиотека OpenCV.

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

import cv2

# Путь к исходному видео-файлу
video_path = 'video.mp4'
# Путь к выходному видео-файлу
output_video = 'timelapse_video.avi'
# Количество кадров, которые нужно пропускать, чтобы создать таймлапс
frame_skip = 10

# Открываем видеофайл для чтения
cap = cv2.VideoCapture(video_path)
# Задаем параметры для записи выходного видео (кодек XVID, 20 кадров в секунду, размеры кадров из исходного видео)
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter(output_video, fourcc, 20.0, (int(cap.get(cv2.CAP_PROP_FRAME_WIDTH)), int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))))

frame_count = 0 # Инициализируем счетчик кадров

# Читаем и обрабатываем кадры из видео, пока оно открыто
while cap.isOpened():
# Читаем следующий кадр из видео
ret, frame = cap.read()
# Если кадры закончились, выходим из цикла
if not ret:
break

# Если номер кадра кратен frame_skip, записываем кадр в выходное видео
if frame_count % frame_skip == 0:
out.write(frame)
# Увеличиваем счетчик кадров
frame_count += 1

# Освобождаем ресурсы после завершения работы
cap.release() # Закрываем исходное видео
out.release() # Закрываем выходное видео
cv2.destroyAllWindows() # Закрываем все окна OpenCV


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

Библиотека Kornia предоставляет множество инструментов и функций для обработки изображений и работы с компьютерным зрением. Использует PyTorch в качестве backend для ускорения операций.

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

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

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

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

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

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

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

from PIL import Image


def image_to_ascii(image_path, output_path, width=100):
# Открываем изображение по указанному пути
img = Image.open(image_path)
# Конвертируем изображение в градации серого ('L' - режим grayscale)
img = img.convert('L')
# Вычисляем соотношение сторон изображения
aspect_ratio = img.height / img.width
# Определяем новую высоту, сохраняя соотношение сторон
new_height = int(aspect_ratio * width * 0.55)
# Изменяем размер изображения согласно новым параметрам
img = img.resize((width, new_height))

# Получаем пиксельные данные изображения
pixels = img.getdata()
# Определяем набор символов для ASCII
chars = ["@", "#", "S", "%", "?", "*", "+", ";", ":", ",", "."]
# Преобразуем пиксели в ASCII символы
ascii_str = "".join([chars[pixel // 25] for pixel in pixels])
# Получаем длину строки ASCII
ascii_str_len = len(ascii_str)
# Формируем строку ASCII изображения с нужной шириной
ascii_img = "\n".join([ascii_str[index: index + width] for index in range(0, ascii_str_len, width)])

# Открываем файл в режиме для записи
with open(output_path, "w") as f:
# Записываем ASCII изображение в файл
f.write(ascii_img)


image_to_ascii('image.png', 'output.txt')


➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥9👍5🔥2
Игра «Камень, ножницы, бумага» на Python

В данной статье напишем код игры «Камень, ножницы, бумага» на Python.

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥5❤‍🔥2
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12❤‍🔥3🎉1
Справочник Программиста
📺 Бесплатное использование нейросетей gpt 4o, gemini и т д на Python (БЕЗ API) В данном shorts напишем код для обращения к нейросетям на Python. ➡️Справочник Программиста. Подписаться
Код для бесплатного обращения к нейросетям на Python

➡️Установка необходимой библиотеки: pip install g4f

from g4f.client import Client

client = Client()

response = client.chat.completions.create(
model="gpt-4o",
messages=[{
"role": "user",
"content": "Напиши код калькулятора на Python"}],
)

print(response.choices[0].message.content)


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

Библиотека diskcache предназначена для высокопроизводительного кэширования на диске.

Она сочетает преимущества in-memory кэширования и долговечность дискового хранилища, что делает её особенно полезной для больших данных, которые не помещаются в оперативной памяти, или для долгоживущих кэшей, которые должны сохраняться между запусками приложения.

Основные особенности библиотеки:
🔵Персистентность данных: Данные сохраняются на диске, что позволяет кэшу переживать перезапуски программы.
🔵Высокая производительность: Использование SQLite для хранения данных на диске обеспечивает высокую скорость доступа.
🔵Поддержка различных стратегий кэширования: Поддерживаются различные стратегии замещения, такие как Least Recently Used (LRU).
🔵Потокобезопасность: Поддержка многопоточности и мультипроцессинга, что позволяет использовать кэш в многозадачных средах.
🔵Простота использования: Легкость интеграции и использования благодаря простому и интуитивно понятному API.

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

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

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

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

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

import cv2


# Функция обработки события клика мыши
def get_color(event, x, y, flags, param):
# Если нажата левая кнопка мыши
if event == cv2.EVENT_LBUTTONDOWN:
# Получаем значения каналов цвета (BGR) в точке клика
b, g, r = img[y, x]
# Выводим значения цвета в формате RGB
print(f"RGB: ({r}, {g}, {b})")


# Загрузка изображения
img = cv2.imread('your_image.jpg')

# Создание окна для отображения изображения
cv2.namedWindow('image')

# Установка функции обработки событий мыши для окна
cv2.setMouseCallback('image', get_color)

while True:
# Отображение изображения в окне
cv2.imshow('image', img)

# Ожидание нажатия клавиши с задержкой 20 мс
if cv2.waitKey(20) & 0xFF == 27: # Если нажата клавиша ESC (код 27), то выходим из цикла
break

# Закрытие всех окон OpenCV
cv2.destroyAllWindows()


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

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

Основные возможности библиотеки:
🔵Простота использования: Требует минимальных изменений в коде для начала работы. Достаточно добавить декоратор @pysnooper.snoop() к функции или использовать контекстный менеджер with pysnooper.snoop():.
🔵Подробный вывод: Выводит детальную информацию о каждом шаге выполнения программы, включая значения переменных, входящих и выходящих из области видимости.
🔵Поддержка локальных и глобальных переменных: Отслеживает изменения как локальных, так и глобальных переменных.
🔵Поддержка различных форматов вывода: Мы можем настроить библиотеку для вывода отладочной информации в консоль, файл или другой поток вывода.
🔵Фильтрация переменных: Возможность фильтровать переменные, которые должны отслеживаться, чтобы сократить объем выводимой информации.

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

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

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

Библиотека InsightFace предназначена для распознавания лиц и их анализа на основе глубокого обучения.

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

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

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

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

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

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

Функция cpu_percent() из модуля psutil предоставляет информацию о загрузке процессора в процентах.

➡️Установка модуля: pip install psutil

import psutil
import time

# Мониторинг загруженности процессора
try:
while True:
print(f"Загруженность процессора: {psutil.cpu_percent(interval=1)}%")
time.sleep(1)
except KeyboardInterrupt:
print("Остановка мониторинга.")


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

В данной статье рассмотрим, как работает функция help() в Python.

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

Библиотека Docxtpl используется для генерации и модификации документов в формате .docx на основе шаблонов.

Она построена поверх библиотеки python-docx и предоставляет удобные инструменты для создания документов с динамическим содержимым, заменяя переменные внутри шаблонов на реальные данные.

Основные возможности библиотеки:
🔵Замена переменных в тексте: Позволяет вставлять значения переменных в текстовые поля документа.
🔵Обработка циклов и условий: Возможность создавать шаблоны с циклами и условиями для динамического добавления контента.
🔵Вставка изображений: Поддерживается вставка изображений на основе шаблонов.
🔵Создание таблиц: Позволяет генерировать таблицы с динамическим содержимым.
🔵Поддержка стилей: Позволяет применять стили к тексту и другим элементам документа.

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

Пример кода:
from docxtpl import DocxTemplate

# Загрузка шаблона
doc = DocxTemplate("pattern.docx")

# Данные для замены
context = {
'name': 'Иван Иванович',
'date': '12.06.2024',
'items': [
{'name': 'Товар 1', 'price': '100 руб.'},
{'name': 'Товар 2', 'price': '200 руб.'},
]
}

# Рендеринг документа с данными
doc.render(context)

# Сохранение документа
doc.save("document.docx")


На картинках показан .docx-шаблон и результат выполнения кода.

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

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍4❤‍🔥2
📺 Генерация фейковых данных человека на Python

В данном shorts напишем код для генерации фейковых данных о человеке на Python (не Faker).

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥4👍3🔥2
Справочник Программиста
📺 Генерация фейковых данных человека на Python В данном shorts напишем код для генерации фейковых данных о человеке на Python (не Faker). ➡️Справочник Программиста. Подписаться
💻 Коды для генерации фейковых данных на Python

Примеров кода довольно много, поэтому придётся разделить на несколько постов.

➡️Установка необходимой библиотеки: pip install mimesis

Генерация случайных персональных данных
from mimesis import Person
from mimesis.enums import Gender
from mimesis.locales import Locale

person = Person(Locale.RU)

print("Имя:", person.name())
print("Фамилия:", person.surname())
print("Пол:", person.gender())
print("Дата рождения:", person.birthdate())
print("Почта:", person.email())
print("Телефон:", person.telephone())

# Генерация данных с указанием пола
print("Мужское имя:", person.name(gender=Gender.MALE))


Генерация случайного адреса
from mimesis import Address

address = Address(locale="ru")

# Генерация случайных данных
print("Страна:", address.country())
print("Город:", address.city())
print("Улица:", address.street_name())
print("Дом:", address.street_number())
print("Почтовый индекс:", address.postal_code())


Генерация случайного текста
from mimesis import Text

text = Text(locale="ru")

print("Случайное слово:", text.word())
print("Случайное предложение:", text.sentence())
print("Случайный абзац:", text.text(quantity=1))


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

Библиотека Tesserocr предоставляет интерфейс для работы с библиотекой OCR (распознавание текста) Tesseract.

Она позволяет легко интегрировать возможности Tesseract в Python-приложения, предоставляя удобный интерфейс для работы с изображениями и распознавания текста.

Основные возможности библиотеки:
🔵Интерфейс C++ API Tesseract: Библиотека напрямую связывается с Tesseract через его C++ API, что обеспечивает высокую производительность и более гибкие возможности по сравнению с вызовом командной строки Tesseract.
🔵Работа с изображениями: Поддерживает работу с изображениями через PIL (Python Imaging Library) или напрямую с numpy массивами, что позволяет легко подготавливать изображения для распознавания.
🔵Настройка параметров Tesseract: Позволяет настраивать различные параметры Tesseract, такие как язык распознавания, варианты предобработки изображений и другие параметры конфигурации.
🔵Поддержка регионов интереса: Присутствует возможность указать конкретные области изображения, которые нужно распознавать, что полезно, если текст находится только в определенных частях изображения.

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

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

➡️Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥3🔥3
Справочник Программиста
💻 Коды для генерации фейковых данных на Python Примеров кода довольно много, поэтому придётся разделить на несколько постов. ➡️Установка необходимой библиотеки: pip install mimesis Генерация случайных персональных данных from mimesis import Person from…
💻 Коды для генерации фейковых данных на Python часть 2

➡️Установка необходимой библиотеки: pip install mimesis

Генерация случайных платёжных данных
from mimesis import Payment

payment = Payment()

print("Номер кредитной карты:", payment.credit_card_number())
print("Дата окончания срока действия кредитной карты:", payment.credit_card_expiration_date())
print("CVV:", payment.cvv())
print("Сеть кредитной карты:", payment.credit_card_network())
print("Адрес Ethereum:", payment.ethereum_address())
print("PayPal:", payment.paypal())
print("Адрес Bitcoin:", payment.bitcoin_address())
print("Владелец кредитной карты:", payment.credit_card_owner())
print("CID:", payment.cid())


Генерация случайных временных данных
from mimesis import Datetime

datetime = Datetime()

print("Случайная дата:", datetime.date())
print("Случайное время:", datetime.time())
print("Случайный месяц:", datetime.month())
print("Случайный год:", datetime.year())
print("Случайный день недели:", datetime.day_of_week())


Генерация случайных данных по разработке
from mimesis import Development

development = Development()

print("Стадия разработки:", development.stage())
print("Характеристика надёжности ПО (ility):", development.ility())
print("Лицензия ПО:", development.software_license())
print("Версия с использованием календарной версии (calver):", development.calver())
print("Версия ПО:", development.version())
print("Язык программирования:", development.programming_language())


Генерация случайных общих данных
from mimesis import Generic

generic = Generic()

print("Случайное имя:", generic.person.name())
print("Случайный адрес:", generic.address.address())
print("Случайный текст:", generic.text.text())
print("Случайный файл:", generic.file.file_name())
print("Случайная дата:", generic.datetime.date())


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

Библиотека Dramatiq - это асинхронная система очередей задач (task queue) для разработки и управления фоновыми задачами в приложениях.

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

Основные особенности библиотеки:
🔵Асинхронность: Поддерживает асинхронное выполнение задач, что позволяет обрабатывать множество задач параллельно.
🔵Простота использования: Имеет интуитивно понятный API, что делает ее доступной для разработчиков любого уровня.
🔵Поддержка брокеров сообщений: Поддерживает несколько брокеров сообщений, включая RabbitMQ и Redis, для обмена сообщениями между компонентами системы.
🔵Расширяемость: Благодаря своей модульной архитектуре, Dramatiq легко расширяется с помощью плагинов и middleware.

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

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

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