[PYTHON:TODAY]
62.5K subscribers
2.11K photos
942 videos
275 files
1.33K links
Python скрипты, нейросети, боты, автоматизация. Всё бесплатно!

Приват: https://boosty.to/pythontoday
YouTube: https://clck.ru/3LfJhM
Канал админа: @akagodlike
Чат: @python2day_chat

Сотрудничество: @web_runner

Канал в РКН: https://clck.ru/3GBFVm
Download Telegram
👨‍💻 Автоматизируем отправку писем с вложениями на Python — профессионально и с логами!

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

📩 Готовый скрипт, который:
✔️ Создаёт письмо с HTML-телом и вложением.
✔️ Отправляет его через SMTP.
✔️ Сохраняет в папку "Отправленные".
✔️ Показывает логи в консоли и сохраняет их в файл.
✔️ Оборачивает всё в функции с обработкой ошибок.

Код:

import os
import time
import imaplib
import smtplib
import logging
from typing import Optional
from email.mime.text import MIMEText
from email.header import Header
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email import encoders
from email.utils import formatdate

# Логгирование
logging.basicConfig(
level=logging.INFO,
format="%(asctime)s — %(levelname)s — %(message)s",
handlers=[
logging.FileHandler("email_sender.log"),
logging.StreamHandler()
]
)

def create_email(
from_addr: str,
to_addr: str,
subject: str,
body: str,
attachment_path: Optional[str] = None
) -> MIMEMultipart:
logging.info("Создание письма...")
msg = MIMEMultipart()
msg["From"] = from_addr
msg["To"] = to_addr
msg["Subject"] = Header(subject, 'utf-8')
msg["Date"] = formatdate(localtime=True)
msg.attach(MIMEText(body, 'html', 'utf-8'))

if attachment_path and os.path.exists(attachment_path):
try:
part = MIMEBase('application', "octet-stream")
with open(attachment_path, "rb") as file:
part.set_payload(file.read())
encoders.encode_base64(part)
part.add_header(
'Content-Disposition',
f'attachment; filename="{os.path.basename(attachment_path)}"'
)
msg.attach(part)
logging.info(f"Файл прикреплен: {attachment_path}")
except Exception as e:
logging.error(f"Ошибка при прикреплении файла: {e}")
else:
logging.warning("Файл не найден или не указан — письмо будет без вложения.")

return msg

def send_email(
smtp_server: str,
smtp_port: int,
from_addr: str,
from_pass: str,
to_addr: str,
message: MIMEMultipart
) -> None:
try:
with smtplib.SMTP(smtp_server, smtp_port) as smtp:
smtp.starttls()
smtp.login(from_addr, from_pass)
smtp.sendmail(from_addr, to_addr, message.as_string())
logging.info(f"Письмо отправлено на {to_addr}")
except Exception as e:
logging.error(f"Ошибка отправки письма: {e}")

def save_to_sent(
imap_server: str,
imap_port: int,
from_addr: str,
from_pass: str,
message: MIMEMultipart
) -> None:
try:
with imaplib.IMAP4(imap_server, imap_port) as imap:
imap.login(from_addr, from_pass)
imap.select('Sent')
imap.append('Sent', None, imaplib.Time2Internaldate(time.time()), message.as_bytes())
logging.info("Письмо сохранено в 'Sent'")
except Exception as e:
logging.error(f"Ошибка сохранения письма: {e}")

if __name__ == "__main__":
FROM_EMAIL = "corp-mail@mail.ru"
FROM_PASSWORD = "*"
SMTP_SERVER = "*.mail.ru"
SMTP_PORT = 25
IMAP_PORT = 143
TO_EMAIL = "students-mail@mail.ru"
SUBJECT = "Тема сообщения"
BODY = "Текст сообщения"
ATTACHMENT_PATH = "сертификат.pdf"

try:
email_msg = create_email(FROM_EMAIL, TO_EMAIL, SUBJECT, BODY, ATTACHMENT_PATH)
send_email(SMTP_SERVER, SMTP_PORT, FROM_EMAIL, FROM_PASSWORD, TO_EMAIL, email_msg)
save_to_sent(SMTP_SERVER, IMAP_PORT, FROM_EMAIL, FROM_PASSWORD, email_msg)
except Exception as e:
logging.critical(f"Критическая ошибка: {e}")


📩 Загружай свои письма и забудь про ручную рутину!

📂 Сохрани себе или шарь тому, кто занимается рассылками и документооборотом.

#python #soft #code
Please open Telegram to view this post
VIEW IN TELEGRAM
♻️ YoutubeGO — мощный и простой в использовании инструмент для загрузки видео и аудио с YouTube и других платформ, поддерживающих HTTP-потоки.

С его помощью вы легко сохраните любимый контент для офлайн-просмотра

Ключевые возможности:
🖱 Поддержка множества платформ: Загружайте контент с YouTube, Vimeo и других сервисов.
🖱 Скачивание плейлистов: Сохраняйте целые плейлисты одним кликом.
🖱 Разнообразие форматов: Загружайте видео в MP4 и аудио в MP3 с автоматической конверсией.
🖱 Высокое разрешение: Поддержка до 8K, включая 4K, 2K, 1080p и другие.
🖱 Пакетная обработка: Управляйте очередью загрузок, приостанавливайте и возобновляйте их по необходимости.
🖱 Извлечение аудио: Получайте аудиодорожки из видеофайлов (требуется FFmpeg).
🖱 Управление профилем: Сохраняйте имя, аватар, пути загрузки и ссылки на соцсети.
🖱 Drag & Drop интерфейс: Просто перетаскивайте ссылки для добавления в очередь загрузки.
🖱 Темная и светлая темы: Выбирайте комфортный режим отображения.
🖱 Планировщик загрузок: Настраивайте загрузки на определенное время.
🖱 Кроссплатформенность: Полная поддержка Linux, macOS и Windows.

⚙️ Установка:
1. Клонируйте репозиторий:

   git clone https://github.com/Efeckc17/YoutubeGO.git
cd YoutubeGO

2. Убедитесь, что установлен Python 3.7+:

   python --version

3. Установите зависимости:

   pip install -r requirements.txt

4. Установите FFmpeg для обработки аудио и видео:

- macOS:

     brew install ffmpeg


- Linux (Debian/Ubuntu):

     sudo apt install ffmpeg


- Linux (Arch-based):

     sudo pacman -S ffmpeg


- Windows (через winget):

     winget install FFmpeg


👨‍💻 Использование:

python main.py

YoutubeGO — надежный помощник для сохранения контента в высоком качестве и удобном формате.

5️⃣ GitHub/Инструкция

🔗 Готовый скрипт в архиве

#python #soft #code
Please open Telegram to view this post
VIEW IN TELEGRAM
📊 img2table — Полезный инструмент, который помогает автоматизировать извлечение таблиц из сканированных документов или изображений.

📄 Основные возможности:
🟢 Распознавание таблиц на изображениях и в PDF-файлах, включая поддержку сложных структур с объединёнными ячейкам.
🟢 Интеграция с различными OCR-сервисами, такими как Tesseract, PaddleOCR, EasyOCR, Google Vision, AWS Textract и Azure Cognitive Service.
🟢 Возможность экспорта извлечённых таблиц в формат Excel или Pandas DataFrame, сохраняя оригинальную структур.
🟢 Поддержка различных форматов изображений: JPEG, PNG, TIFF и други.

⚙️ Установка:

pip install img2table


Для использования с определённым OCR-сервисом:

pip install img2table[tesseract]  # или [paddle], [easyocr], [gcp], [aws], [azure]


Пример использования:

from img2table.document import Image
from img2table.ocr import TesseractOCR

# Инициализация OCR
ocr = TesseractOCR()

# Загрузка изображения
img = Image("путь_к_изображению.jpg")

# Извлечение таблиц
tables = img.extract_tables(ocr=ocr)

# Получение первой таблицы в виде DataFrame
df = tables[0].df


Благодаря использованию OpenCV, img2table эффективно работает на CPU, не требуя мощных вычислительных ресурсв.

5️⃣ GitHub/Инструкция

👇 Готовый скрипт в архиве

#python #soft #code
Please open Telegram to view this post
VIEW IN TELEGRAM
💻 Создайте собственную систему распознавания лиц с OpenCV и Python!

OpenCV-Face-Recognition — для всех, кто интересуется компьютерным зрением и хочет реализовать проект по распознаванию лиц в реальном времени.

🗳 Что внутри:

💬 Реализация распознавания лиц в реальном времени с использованием OpenCV и Python.
💬 Подробные инструкции по сбору данных, обучению модели и распознаванию лиц.
💬 Примеры кода для детекции лиц с использованием каскадов Хаара.
💬 Интеграция с Raspberry Pi и PiCam для создания компактных решений.

Проект включает три основных этап:

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

Подробные инструкции и примеры кода доступны в репозитории.

⚙️ GitHub/Инструкция

#python #soft #code
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
👊 Автоматизируем заработок на крипте с помощью Python!

Если ты всё ещё руками сидишь на бирже — значит, ты пропускаешь профит.

📈 CCXT — библиотека(35+ тысяч звезд на GitHub) , которая превращает твой Python-скрипт в личного трейдера:

🚀 Более 100+ бирж: Binance, Bybit, Kraken, Coinbase — всё в одном API.
🔁 Единый синтаксис для всех бирж — не нужно каждый раз переучиваться.
🤖 Поддержка торговых ботов, ордеров, баланса, истории сделок и стратегий.
💬 Поддержка как публичных, так и приватных API, включая торговлю, получение баланса и управление ордерам.

📦 Установка:

pip install ccxt

Пример использования на Python:

import ccxt

exchange = ccxt.binance()
markets = exchange.load_markets()
ticker = exchange.fetch_ticker('BTC/USDT')
print(ticker)


💻 Код, всего в несколько строк подключается к бирже Binance, загружает доступные рынки и выводит текущий тикер для пары BTC/UDT.

⚠️ Только для образовательных целей. Авторы софта не несут никакой ответственности за ваши действия.

5️⃣ GitHub/Инструкция

👨‍💻 Руководство пользователя

👇 Готовый скрипт в архиве

#python #soft #code
Please open Telegram to view this post
VIEW IN TELEGRAM
👨‍💻 Убираем фон с любой картинки за пару секунд с помощью Python!

Хотите автоматизировать обработку изображений без фотошопа?
Скрипт-проект на базе библиотеки rembg:

📦 Установка:
pip install rembg


Пример кода:
from rembg import remove


def remove_background(input_path: str, output_path: str) -> None:
"""Удаляет фон с изображения и сохраняет результат."""
with open(input_path, 'rb') as input_file:
with open(output_path, 'wb') as output_file:
image_bytes: bytes = input_file.read()
output_bytes: bytes = remove(image_bytes)
output_file.write(output_bytes)

if __name__ == "__main__":
remove_background('input.png', 'output.png')


🟢Открывает файл;
🟢Убирает фон;
🟢Сохраняет готовое изображение.

5️⃣ GitHub/Инструкция

#python #soft #code
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Крутая реализация кнопки подтверждения заказа для твоего проекта

📂 Код на codepen

👇 Готовые исходники в архиве

#soft #code
Please open Telegram to view this post
VIEW IN TELEGRAM
😂 Как размыть лица на фото с помощью Python и OpenCV

Если тебе нужно быстро замазать лица на снимке — вот тебе универсальный скрипт!

Работает на основе каскадов Хаара и добавляет эффект размытия по каждому найденному лицу.

💻 Готовый скрипт:

import cv2
from typing import Tuple


def load_image(path: str) -> cv2.Mat:
"""Загружает изображение с указанного пути."""
image = cv2.imread(path)
if image is None:
raise FileNotFoundError(f"Изображение не найдено: {path}")
return image


def detect_faces(image: cv2.Mat) -> Tuple[Tuple[int, int, int, int], ...]:
"""Находит лица на изображении с помощью каскада Хаара."""
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
face_cascade = cv2.CascadeClassifier(
cv2.data.haarcascades + "haarcascade_frontalface_default.xml"
)
faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5)
return tuple(faces)


def blur_faces(image: cv2.Mat, faces: Tuple[Tuple[int, int, int, int], ...]) -> cv2.Mat:
"""Размывает найденные лица на изображении."""
for (x, y, w, h) in faces:
face_roi = image[y:y+h, x:x+w]
blurred = cv2.GaussianBlur(face_roi, (99, 99), 30)
image[y:y+h, x:x+w] = blurred
return image


def save_image(image: cv2.Mat, path: str) -> None:
"""Сохраняет изображение на диск."""
cv2.imwrite(path, image)


if __name__ == "__main__":
input_path = "/home/kali/Coding/TEST/man.png"
output_path = "blurred_faces.jpg"

img = load_image(input_path)
found_faces = detect_faces(img)

print(f"👀 Найдено лиц: {len(found_faces)}")

blurred_img = blur_faces(img, found_faces)
save_image(blurred_img, output_path)

print(f" Сохранено: {output_path}")


👨‍💻 Возможности:
🖱 Автоматическое обнаружение лиц;
🖱 Размытие без потери качества остальной части фото;
🖱 Работает за считанные секунды;
🖱 Код полностью на Python + OpenCV.

📂 Сохраняй и экспериментируй! Лойс не забудь поставить 👍

#python #soft #code
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
👺 FaceEnhance — инструмент который прокачивает до идеала лица на AI-картинках.

🧑‍💻 Что умеет:
💬 Дорабатывает лица в нейросетевых изображениях без искажения фона и освещения.
💬 Повышает качество и точность деталей лица.
💬 Работает через простой скрипт или удобный Gradio-интерфейс.

⚙️ Как установить:
git clone https://github.com/RishiDesai/FaceEnhance
cd FaceEnhance
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python install.py


😰 Протестировать можно одной командой:
python test.py --input examples/dany_gpt_1.png --ref examples/dany_face.jpg --out examples/dany_enhanced.png


⌨️ Есть даже веб-интерфейс на Gradio (python demo.py) для быстрого теста без кода.

5️⃣ GitHub/Инструкция

#python #soft #code
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Полезные библиотеки Python

Fake2db
— настоящая находка для разработчиков, которым нужно «оживить» проект фейковыми данными за пару секунд.

👨‍💻 Библиотека генерирует реалистичные базы с именами, адресами, номерами, датами, товарами и чем угодно — для отладки, тестов и мокапов.

Забудьте про ручной ввод или костыли в Excel — теперь всё автоматом, красиво и быстро.

Пример: хочешь протестить API магазина? fake2db закинет тебе в базу 1000 товаров с ценами, фотками и описаниями — и всё это одной командой.

Поддерживает:
🟢 SQLite
🟢MySQL
🟢PostgreSQL
🟢MongoDB
🟢Redis
🟢CouchDB

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

📦 Установка:
pip install fake2db


⚙️GitHub/Инструкция

#python #soft #code #github
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM