✔ Автобэкап важной рабочей папки
✔ Синхронизация между двумя дисками или флешкой
✔ Создание зеркала данных
✔ Защита от потери при сбое
import os
import shutil
import time
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
SOURCE = "source_folder"
TARGET = "target_folder"
os.makedirs(SOURCE, exist_ok=True)
os.makedirs(TARGET, exist_ok=True)
class SyncHandler(FileSystemEventHandler):
def on_any_event(self, event):
rel_path = os.path.relpath(event.src_path, SOURCE)
target_path = os.path.join(TARGET, rel_path)
if event.is_directory:
if event.event_type == "created" and not os.path.exists(target_path):
os.makedirs(target_path, exist_ok=True)
else:
if event.event_type in ("created", "modified"):
os.makedirs(os.path.dirname(target_path), exist_ok=True)
shutil.copy2(event.src_path, target_path)
print(f"🔄 Скопировано: {rel_path}")
elif event.event_type == "deleted":
if os.path.exists(target_path):
os.remove(target_path)
print(f"🗑️ Удалено: {rel_path}")
observer = Observer()
observer.schedule(SyncHandler(), path=SOURCE, recursive=True)
observer.start()
print(f"🕵️ Слежение за {SOURCE} → {TARGET}")
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍8❤3😁1
💾 Imgcat
позволяет отображать изображения в терминале прямо из Python-скрипта. Поддерживает передачу PNG, JPEG и других форматов — работает в терминалах с поддержкой inline-графики (например, iTerm2, Kitty, WezTerm, Windows Terminal с расширениями).
🔍 Особенности:
🖼 Увидеть результат прямо в консоли — без открытия окна
📦 Удобно в ML, отладке, логах, GitHub Codespaces, SSH
🎯 Поддержка большинства терминалов, работает быстро
🔥 Супер для серверов и минимальных окружений
⚙️ Установка 👇👇👇
pip install imgcat
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥12❤4🤩1
OTC-main.zip
30.7 KB
💻 ЯП: Python 3.11+🐍
💾 Модули: aiogram
📂 База данных: sqlite3
Основные функции:
- Конвертация валют и криптовалют в реальном времени
- Поддержка множества фиатных валют и криптовалют
- Инлайн-режим для быстрой конвертации в любом чате
- Настраиваемые пользовательские настройки (предпочтительные валюты, язык, формат цитирования)
- Поддержка групповых чатов с отдельными настройками для каждой группы
-Система кэширования для эффективного использования API
#telegram
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤1
✔ Сохранение сессии перед закрытием
✔ Поиск среди десятков вкладок
✔ Создание истории работы над задачей
✔ Интеграция с TODO-листами или Trello
chrome.exe --remote-debugging-port=9222
import requests
def get_open_tabs():
try:
resp = requests.get("http://localhost:9222/json")
tabs = resp.json()
for tab in tabs:
print(f"🌐 {tab['title']}\n🔗 {tab['url']}\n")
except Exception as e:
print("❌ Ошибка подключения. Запусти Chrome с параметром: --remote-debugging-port=9222")
get_open_tabs()
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍18❤1😁1
💾 AnyIO
🔍 Особенности:
🧠 Пишешь один код — работает на разных движках
🔥 Упрощает сложные асинхронные сценарии
🛠 Идеален для библиотек, которые хотят быть совместимыми со всеми
🎯 Хорошо сочетается с FastAPI, Quart, trio, httpx, pytest
⚙️ Установка 👇👇👇
pip install anyio
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7🔥4👍3
Server-Monitoring-Telegram-Bot-System-main.zip
12.6 MB
💻 ЯП: Python 3.11+🐍
💾 Модули: flask, python-telegram-bot, requests, psutil
📂 База данных: -
#telegram
Please open Telegram to view this post
VIEW IN TELEGRAM
❤14🔥10
✔ Слушай книгу по частям без потери места
✔ Удобно для изучающих язык — возвращаться на нужный момент
✔ Повтор занятий и лекций
✔ Прост в использовании и работает офлайн
import pygame
import time
import os
import json
AUDIO_FILE = "audiobook.mp3"
PROGRESS_FILE = "progress.json"
pygame.mixer.init()
pygame.mixer.music.load(AUDIO_FILE)
# Загрузка позиции
if os.path.exists(PROGRESS_FILE):
with open(PROGRESS_FILE) as f:
data = json.load(f)
position = data.get(AUDIO_FILE, 0)
print(f"▶️ Продолжаем с {round(position, 2)} сек")
else:
position = 0
pygame.mixer.music.play(start=position)
try:
while pygame.mixer.music.get_busy():
time.sleep(1)
except KeyboardInterrupt:
current_pos = pygame.mixer.music.get_pos() / 1000 + position
with open(PROGRESS_FILE, "w") as f:
json.dump({AUDIO_FILE: current_pos}, f)
print(f"\n⏸️ Остановлено на {round(current_pos, 2)} сек. Позиция сохранена.")
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16❤5🔥3
💾 git-xl
🔍 Особенности:
📊 Позволяет работать с Excel так же удобно, как с кодом
🧠 Идеально для команд, где Excel — основной источник данных
🎯 Отлично сочетается с Git, CI/CD, версионным контролем
🔥 Спасает от потери данных и ошибок в формулах
⚙️ Установка 👇👇👇
C:\Developer>git xl install
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤3😁1
Speech-Decoder-main.zip
10.2 KB
💻 ЯП: Python 3.11+🐍
💾 Модули: aiogram, SpeechRecognition, requests
📂 База данных: -
Этот бот предназначен для облегчения взаимодействия с голосовыми сообщениями и повышения удобства пользователей. 🗣️➡️📜
#telegram
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥4❤3
✔ Быстрое копирование текста с видео/презентации
✔ Сохранение URL из слайдов, PDF, Zoom
✔ Захват данных с баннеров, билетов, визиток
✔ Инструмент “умного экрана” для повседневных задач
import pytesseract
from PIL import ImageGrab
import re
# Сделать скриншот (или открыть готовое изображение)
img = ImageGrab.grab() # Скриншот всего экрана
# img = Image.open("screenshot.png")
text = pytesseract.image_to_string(img, lang="eng+rus")
print("📝 Распознанный текст:\n", text)
# Поиск ссылок, email, телефонов
urls = re.findall(r'https?://\S+', text)
emails = re.findall(r'\b[\w.-]+@[\w.-]+\.\w+\b', text)
phones = re.findall(r'\+?\d[\d\s\-]{7,}', text)
print("\n🔗 Найденные ссылки:", urls)
print("✉️ Email:", emails)
print("☎️ Телефоны:", phones)
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍16🔥1
💾 Pyenv-win
🔍 Особенности:
🧠 Поддержка десятков проектов с разными версиями Python
🚀 Безопасное тестирование, разработка, миграции
🎯 Идеально для разработчиков, автоматизаторов и CI-сценариев
⚙️ Настраивается за 5 минут и решает массу проблем на Windows
⚙️ Установка 👇👇👇
pip install pyenv-win
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤1
ChannelOffer-main.zip
9 KB
💻 ЯП: Python 3.11+🐍
💾 Модули: aiogram
📂 База данных: sqlite3
Основные функции:
📨 Прием предложений (текст/фото) от пользователей
🔔 Уведомления автора о решении модератора
💻 Панель управления для администраторов:
Просмотр новых заявок
Одобрение/отклонение контента
📢 Автоматическая публикация одобренных постов в канал
📊 Логирование действий в боте
#telegram
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥2
✔ Учёба (модули, курсы, темы)
✔ Фитнес-планы, диеты, повседневные дела
✔ “Что посмотреть/прочитать/попробовать”
✔ Оффлайн-трекер без регистрации и сайтов
import json
import os
FILENAME = "checklist.json"
def load_tasks():
if os.path.exists(FILENAME):
with open(FILENAME, "r", encoding="utf-8") as f:
return json.load(f)
return []
def save_tasks(tasks):
with open(FILENAME, "w", encoding="utf-8") as f:
json.dump(tasks, f, ensure_ascii=False, indent=2)
def show_tasks(tasks):
if not tasks:
print("📭 Список пуст.")
return
for i, task in enumerate(tasks):
mark = "✅" if task["done"] else "⬜"
print(f"{i+1}. {mark} {task['title']}")
def main():
tasks = load_tasks()
while True:
print("\n📋 Чеклист:")
show_tasks(tasks)
print("\n1. Добавить 2. Отметить выполненным 3. Удалить 4. Выйти")
choice = input("Выбор: ")
if choice == "1":
title = input("Введите задачу: ")
tasks.append({"title": title, "done": False})
elif choice == "2":
index = int(input("Номер задачи: ")) - 1
if 0 <= index < len(tasks):
tasks[index]["done"] = True
elif choice == "3":
index = int(input("Номер задачи: ")) - 1
if 0 <= index < len(tasks):
del tasks[index]
elif choice == "4":
break
else:
print("❌ Неверный выбор.")
save_tasks(tasks)
main()
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤2
💾 Nbconvert
🔍 Особенности:
📊 Позволяет делиться результатами анализа, моделей и графиков — красиво и понятно
🧠 Используется в научной среде, бизнес-отчётах, образовании
🎯 Поддерживает автоматизацию: из ноутбука → в PDF отчёт → по email
⚙️ Установка 👇👇👇
pip install nbconvert
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤2
telegram-form-bot-main.zip
9.3 KB
💻 ЯП: Python 3.11+🐍
💾 Модули: aiogram
📂 База данных: aiosqlite
🚀 Возможности:
- Приём заявок от пользователей
- Уведомление администратора о новых заявках
- Просмотр всех заявок через админ-панель
- Получение подробной информации по заявке
- Удаление заявок
- Использование базы данных SQLite
- Разделение логики на пользователя и администратора
#telegram
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍7🔥1
✔ Хранить, что ты уже посмотрел
✔ Планировать, что хочешь посмотреть
✔ Оценивать и сортировать любимые фильмы
✔ Делать личную “кинобазу”
import json
import os
from tabulate import tabulate
FILENAME = "movies.json"
def load():
if os.path.exists(FILENAME):
with open(FILENAME, "r", encoding="utf-8") as f:
return json.load(f)
return []
def save(movies):
with open(FILENAME, "w", encoding="utf-8") as f:
json.dump(movies, f, ensure_ascii=False, indent=2)
def display(movies, only=None):
table = []
for m in movies:
if only and m["status"] != only:
continue
table.append([m["title"], m["year"], m["rating"], m["status"]])
print(tabulate(table, headers=["Название", "Год", "Рейтинг", "Статус"]))
def main():
movies = load()
while True:
print("\n🎞️ Личный каталог фильмов")
print("1. Добавить фильм\n2. Показать всё\n3. Только 'посмотрено'\n4. Только 'хочу'\n5. Поиск\n6. Выход")
choice = input("Выбор: ")
if choice == "1":
title = input("Название: ")
year = input("Год: ")
rating = input("Оценка (0–10): ")
status = input("Статус (🎬 посмотрено / 📌 хочу посмотреть): ")
movies.append({"title": title, "year": year, "rating": rating, "status": status})
save(movies)
elif choice == "2":
display(movies)
elif choice == "3":
display(movies, only="🎬 посмотрено")
elif choice == "4":
display(movies, only="📌 хочу посмотреть")
elif choice == "5":
q = input("Поиск по названию: ").lower()
found = [m for m in movies if q in m["title"].lower()]
display(found)
elif choice == "6":
break
else:
print("❌ Неверный выбор.")
main()
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥3
💾 Notify_py
🔍 Особенности:
🧠 Уведомления без необходимости открывать окно или писать GUI
💡 Отлично подходит для фоновых скриптов, резервного копирования, напоминаний
💬 Альтернатива print() + звуку, особенно для долгих процессов
📦 Простая установка, работает даже в venv
⚙️ Установка 👇👇👇
pip install notify_py
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤6
Combot-telegram-channel-parser-main.zip
7.6 KB
💻 ЯП: Python 3.11+🐍
💾 Модули: requests, bs4
📂 База данных: sqlite3
Особенности:
-Сбор информации о чатах (название, юзернейм, количество участников, язык, изображение и т.д.).
- Сохранение данных в базу данных SQLite.
- Парсинг данных с сайта через API с использованием BeautifulSoup и requests.
#telegram
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤3🔥1😁1
✔ Распечатка планов, расписаний, вешать на стену
✔ Создание расписания для семьи, школы, спорта
✔ Ведение задач и контроль сроков вручную
import calendar
import matplotlib.pyplot as plt
def generate_month_calendar(year, month):
cal = calendar.monthcalendar(year, month)
days = ["Пн", "Вт", "Ср", "Чт", "Пт", "Сб", "Вс"]
fig, ax = plt.subplots(figsize=(10, 6))
ax.set_axis_off()
table = ax.table(cellText=cal,
colLabels=days,
cellLoc='center',
loc='upper center')
table.scale(1, 2)
for i in range(len(cal)):
for j in [5, 6]: # Выделим сб/вс
cell = table[i + 1, j]
if cell.get_text().get_text().strip():
cell.set_facecolor("#ffe0e0")
plt.title(f"{calendar.month_name[month]} {year}", fontsize=20)
plt.savefig(f"calendar_{month}_{year}.png", bbox_inches='tight')
print(f"✅ Календарь сохранён: calendar_{month}_{year}.png")
# Пример использования
generate_month_calendar(2025, 6)
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍14❤3
💾 Bandit
🔍 Особенности:
🛡 Позволяет находить проблемы до деплоя
📦 Используется в промышленной разработке, безопасных API
🔍 Совместим с другими линтерами (flake8, black, mypy)
✅ Работает быстро, легко автоматизируется
⚙️ Установка 👇👇👇
pip install bandit
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍6🔥2
Единственный канал где делимся готовыми скриптами на Python 🚀 по крипто тематике абсолютно бесплатно 💸 :
👇👇👇
- Никакой воды🚀
- Алготрейдинг🤖
- Работа с API бирж, агрегаторов💻
- Автоматизации📈
Подпишись и пользуйся -> Crypto Python
👇👇👇
- Никакой воды
- Алготрейдинг
- Работа с API бирж, агрегаторов
- Автоматизации
Подпишись и пользуйся -> Crypto Python
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤4🔥2