При превышении порогов мгновенно уведомляет в Telegram-чат, а также (при суточном запуске) отправляет сводный отчёт о состоянии сервера.
Особенности:
TG_TOKEN — токен бота,
TG_CHAT_ID — ID получателя,
THRESHOLD_MB — минимально допустимый запас диска (МБ).
Код:
#!/usr/bin/env python3
import os, psutil
from datetime import datetime
from telegram import Bot
bot = Bot(os.getenv("TG_TOKEN"))
cid = os.getenv("TG_CHAT_ID")
mnt = os.getenv("MOUNTPOINT", "/")
thr = int(os.getenv("THRESHOLD_MB", "1024"))
u = psutil.disk_usage(mnt) # свободное место
free = u.free // 2**20 # MB
if free < thr: # оповещение при нехватке
bot.send_message(cid, f"⚠️ {mnt}: {free} MB (<{thr})")
mem = psutil.virtual_memory() # RAM
cpu = psutil.cpu_percent(1) # CPU
now = datetime.now().strftime("%Y-%m-%d %H:%M")
bot.send_message( # ежедневный отчёт
cid,
f"📊 {now}\nCPU: {cpu:.1f}%\nRAM: {mem.percent:.1f}%\n{mnt} free: {free} MB",
disable_web_page_preview=True,
)
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍12🔥6❤3🎉1
⚙️ Параметры:
– output_path — путь для сохранения (по умолчанию ./)
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤17👍11
📌 Особенности:
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10🔥6
и выдаёт итоговую сумму с учётом сложных процентов и регулярных взносов.
Код максимально понятный:
print('Сколько лет вы планируете копить?')
years = int(input('Введите число лет: '))
print('Сколько денег уже на счёте?')
principal = float(input('Введите текущую сумму: '))
print('Какой ежемесячный взнос вы планируете?')
monthly = float(input('Введите сумму взноса: '))
print('Какую годовую процентную ставку вы ожидаете (в процентах, например 4 для 4%)?')
interest = float(input('Введите ставку в процентах: ')) / 100
annual_invest = monthly * 12
final_amount = principal
for _ in range(years):
final_amount = (final_amount + annual_invest) * (1 + interest)
print(f'Через {years} лет на вашем счёте будет: {final_amount:.2f}')Please open Telegram to view this post
VIEW IN TELEGRAM
1❤18🔥6👍4
Она использует глубокие генеративные сети (GAN) и обучена на огромных датасетах реальных изображений.
git clone https://github.com/jantic/DeOldify.git
cd DeOldify
pip install -r requirements.txt
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15❤5👍3
timeКод:
import time
def benchmark(func):
def wrapper(*args, **kwargs):
start = time.perf_counter()
result = func(*args, **kwargs)
end = time.perf_counter()
print(f"{func.__name__} took {end - start:.5f} seconds")
return result
return wrapper
@benchmark
def slow_function():
time.sleep(1)
slow_function()
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤5
– subprocess (встроенный модуль Python)
– yt-dlp (
pip install yt-dlp)Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16❤2
pip install PyFlow
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤4🔥4
tiktok-downloader-master.zip
93.6 KB
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤9👍4
pip install angr
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍4
📌 Библиотека Python для выполнения эффективной многопоточной обработки данных, поддерживает наборы данных, которые не помещаются в памяти, отличается высокой производительностью.
pip install datatable
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍4
secrets🟠 Принимает параметр length (минимум 8).🟠 Выбирает по одному символу из: строчных, заглавных, цифр и спецсимволов.🟠 Дополняет до length случайными символами из общего пула.🟠 Перемешивает порядок символов.🟠 Возвращает итоговый пароль.
Код:
import secrets
import string
def gen_password(length: int = 12) -> str:
if length < 8:
raise ValueError("Длина пароля должна быть не меньше 8 символов.")
lowercase = string.ascii_lowercase
uppercase = string.ascii_uppercase
digits = string.digits
specials = "!@#$%^&*()-_=+[]{};:,.<>?/"
password_chars = [
secrets.choice(lowercase),
secrets.choice(uppercase),
secrets.choice(digits),
secrets.choice(specials)
]
all_chars = lowercase + uppercase + digits + specials
for _ in range(length - 4):
password_chars.append(secrets.choice(all_chars))
secrets.SystemRandom().shuffle(password_chars)
return ''.join(password_chars)
if __name__ == "__main__":
print(gen_password(16))
Please open Telegram to view this post
VIEW IN TELEGRAM
❤13🔥3😁2
🟠 Каждую минуту проверяет содержимое указанного сайта.🟠 Если сайт изменился — выводит сообщение "Сайт обновился!".
Код:
import requests
import hashlib
import time
URL = 'https://example.com' # замени на нужный сайт
CHECK_INTERVAL = 60 # интервал проверки в секундах
def get_hash(url):
try:
response = requests.get(url, timeout=10)
response.raise_for_status()
return hashlib.md5(response.text.encode('utf-8')).hexdigest()
except Exception as e:
print("Ошибка при запросе:", e)
return None
def monitor_site(url):
print(f"Следим за сайтом: {url}")
old_hash = get_hash(url)
if old_hash is None:
print("Не удалось получить начальное состояние.")
return
while True:
time.sleep(CHECK_INTERVAL)
new_hash = get_hash(url)
if new_hash is None:
continue
if new_hash != old_hash:
print(f"[{time.ctime()}] Сайт обновился!")
old_hash = new_hash
else:
print(f"[{time.ctime()}] Без изменений.")
monitor_site(URL)
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍7🔥6
pip install plotext
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
1❤6🔥3👍2🥰1
aiodns 🟠 Быстрее стандартного socket.getaddrinfo() в асинхронных приложениях🟠 Хорошо работает с aiohttp и другими async-клиентами🟠 Поддерживает MX, NS, TXT и другие DNS-запросы
pip install aiodns
#библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥5❤4
🟠 Перебирает порты в диапазоне 20–1024 у заданного IP/доменного имени🟠 Проверяет, какие из них открыты (т.е. доступны для подключения)
Код:
import socket
target = input("Введите IP или домен для сканирования: ").strip()
print(f"\nСканирование {target}...\n")
for port in range(20, 1025):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(0.5)
result = s.connect_ex((target, port))
if result == 0:
print(f"[+] Порт {port} открыт")
s.close()
Please open Telegram to view this post
VIEW IN TELEGRAM
❤17👍9😁2
Всем хорошего воскресного дня! 👋
Решил познакомиться с вами поближе — интересно, кто вы, чем занимаетесь и как именно используете Python в своей практике или обучении.
Решил познакомиться с вами поближе — интересно, кто вы, чем занимаетесь и как именно используете Python в своей практике или обучении.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤14👍5🔥4
В каких областях вы чаще всего применяете Python?
Anonymous Poll
36%
50%
16%
20%
31%
10%
21%
🔥12👍5❤2🎉2😁1
Какой контент вам было бы наиболее интересно видеть на канале, учитывая, что многие из вас используют Python для автоматизации, веб-разработки и обучения?
Anonymous Poll
48%
Примеры и кейсы по автоматизации и DevOps
50%
Обзоры библиотек и инструментов для Python
61%
Разработка Telegram-ботов, для автоматизации чего-либо
6%
Другое (предложите в комментариях)
👍13🔥7❤4
pip install docker)🟠 Принимает название образа, имя контейнера и отображение портов.🟠 Подключается к локальному Docker через Python SDK.🟠 Скачивает указанный образ (если его ещё нет).🟠 Запускает контейнер с флагом detach=True и политикой перезапуска.🟠 Обрабатывает ошибки через DockerException.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤4🔥4