Python_Scripts
8.22K subscribers
1K photos
5 videos
673 files
1.54K links
Скрипты 💾 на Python 🐍
- боты 🛠
- парсеры📁
- чекеры🔍
- автоматизация🔧
- многое другое💻

Ваши предложения📝 @cmd_dark @CMD_Vega
Download Telegram
Всем хорошего воскресного дня! 👋

Решил познакомиться с вами поближе — интересно, кто вы, чем занимаетесь и как именно используете Python в своей практике или обучении.
Please open Telegram to view this post
VIEW IN TELEGRAM
14👍5🔥4
Какой контент вам было бы наиболее интересно видеть на канале, учитывая, что многие из вас используют Python для автоматизации, веб-разработки и обучения?
Anonymous Poll
48%
Примеры и кейсы по автоматизации и DevOps
50%
Обзоры библиотек и инструментов для Python
61%
Разработка Telegram-ботов, для автоматизации чего-либо
6%
Другое (предложите в комментариях)
👍13🔥74
👩‍💻 Автоматизированный деплой Docker-контейнера

📱 Python: 3.7+
💾 Модули: docker (pip install docker)

📌 Скрипт, упрощающий развертывание контейнеров: автоматически скачивает образ и запускает контейнер с нужными параметрами.

🚀 Что делает скрипт:
🟠Принимает название образа, имя контейнера и отображение портов.
🟠Подключается к локальному Docker через Python SDK.
🟠Скачивает указанный образ (если его ещё нет).
🟠Запускает контейнер с флагом detach=True и политикой перезапуска.
🟠Обрабатывает ошибки через DockerException.


💭Полезно для:
🟣CI/CD пайплайнов
🟣 Быстрого развёртывания dev/QA стендов
🟣 Обновления контейнеров в production без ручного вмешательства
Please open Telegram to view this post
VIEW IN TELEGRAM
👍144🔥4
🖥 Пример скрипта для резервного копирования базы данных

💬 В этом примере покажу, как с помощью Python автоматизировать процесс резервного копирования базы данных MySQL в ваших DevOps-проектах.

📌 Для создания резервных копий мы будем использовать системную утилиту mysqldump, которую вызовем из Python через модуль subprocess. Такой подход надёжен и широко используется на практике.

import os
import time
import subprocess

def backup_database(host, username, password, database, output_dir):
timestamp = time.strftime('%Y%m%d_%H%M%S')
output_file = os.path.join(output_dir, f'{database}_backup_{timestamp}.sql')

cmd = [
'mysqldump',
f'-h{host}',
f'-u{username}',
f'-p{password}',
database
]

try:
with open(output_file, 'w') as f:
subprocess.run(cmd, stdout=f, check=True)
print(f'Database backup saved to {output_file}')
except subprocess.CalledProcessError as e:
print(f'Error during backup: {e}')

if __name__ == '__main__':
db_host = 'localhost'
db_username = 'your_db_username'
db_password = 'your_db_password'
db_name = 'your_database_name'
backup_output_dir = '/path/to/backup_directory'

backup_database(db_host, db_username, db_password, db_name, backup_output_dir)


☝️ В итоге скрипт создаст файл с дампом базы в указанной папке, добавив к имени текущую дату и время.

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
11👍10🔥4
🅰️ Как кастомизировать автоматизацию под себя

Ansible — это мощный инструмент автоматизации, и если стандартных модулей недостаточно, можно легко писать свои модули на Python.

🗂 Структура: /library/modify_list.py

🔢 Код взят из доки:
from ansible.module_utils.basic import AnsibleModule

def run_module():
module_args = dict(
some_list=dict(type='list', required=True)
)

result = dict(output=[])

module = AnsibleModule(
argument_spec=module_args,
supports_check_mode=True
)

if module.check_mode:
module.exit_json(**result)

if len(module.params['some_list']) <= 1:
module.fail_json(msg='some_list needs more than 1 item', **result)

for item in module.params['some_list']:
result['output'].append({"value": item, "extra": "n/a"})

module.exit_json(**result)

def main():
run_module()

if __name__ == '__main__':
main()


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

#библиотеки

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍146🔥2👏1
🔥 Полезные библиотеки Python

astor

📌 Это библиотека для преобразования AST (абстрактного синтаксического дерева) обратно в исходный Python-код, а также для анализа и модификации кода.

📌 Особенности библиотеки:
🟠Преобразует AST → Python-код (unparsing)
🟠Удобна для автогенерации и модификации кода
🟠Поддерживает сохранение форматирования и комментариев (частично)


⚙️ Установка:
pip install astor


🔢 Документация

#библиотеки

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
👍84
🌃 Быстрое и надёжное массовое переименование файлов в Python

🤝 Делюсь готовым решением для автоматического замены части имени файлов в указанной директории.

🟠Скрипт включает проверку пути, обработку ошибок и защиту от конфликтов имён.

import os

def bulk_rename(folder_path, old_name_part, new_name_part):

if not os.path.isdir(folder_path):
raise NotADirectoryError(f"Путь «{folder_path}» не найден")

for filename in os.listdir(folder_path):
if old_name_part in filename:
new_filename = filename.replace(old_name_part, new_name_part)
old_full = os.path.join(folder_path, filename)
new_full = os.path.join(folder_path, new_filename)

# Пропускаем, если имена совпадают
if old_full == new_full:
print(f"Пропущено (имена совпадают): {filename}")
continue

try:
os.rename(old_full, new_full)
print(f"Переименовано: {filename} → {new_filename}")
except OSError as e:
print(f"Ошибка при переименовании {filename}: {e}")

if __name__ == "__main__":
folder = '/path/to/your/folder'
bulk_rename(folder, 'old_part', 'new_part')


🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍53
🔥 Полезные библиотеки Python

dill

📌 dill — расширение pickle, позволяющее сериализовать почти всё в Python: lambda, локальные функции, замыкания, генераторы и даже состояние интерпретатора.

📌 Особенности библиотеки:
🟠Работает там, где pickle падает
🟠Подходит для multiprocessing с функциями без глобального контекста
🟠Можно сохранить/восстановить сессию (dill.dump_session())


⚙️ Установка:
pip install dill


🔢 Документация

#библиотеки

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
15👍3
Bot-EveryDay-master.zip
78.7 KB
🗓 Скрипт планировщик задач

📱 Python: 3.11+🐍
💾 Модули: aiogram
🖥 База данных: postgresql

🚀 Скрипт — это Telegram-бот на Python, позволяющий создавать задачи с напоминаниями и прикреплёнными видео, храня все данные в PostgreSQL.

💭 Он отправляет уведомления пользователю в заданное время и помогает планировать день прямо в Telegram.

#telegram

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥18👍7👏2
tonview-bot-main.zip
37.9 KB
💰 Скрипт обозреватель в сети TON

📱 Python 3.11+
💾 Модули: aiogram, aiohttp
🖥 База данных: sqlalchemy

🚀 Это Telegram-бот, который позволяет отслеживать информацию о кошельках, блоках и транзакциях в сети TON.

#telegram

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
110😁4👏3👍2
🔥 Полезные библиотеки Python

h2o

📌 h2o — это производительный ML-фреймворк, поддерживающий автоматическое машинное обучение (AutoML), работу с большими данными и моделями на кластере или GPU.

📌 Особенности библиотеки:
🟠Встроенный AutoML: подбор моделей, стэкинг, тюнинг
🟠Поддержка GBM, Random Forest, GLM, XGBoost, Deep Learning
🟠Интерфейс через Python, R, Web UI или REST API
🟠Умеет работать распределённо (кластер), обрабатывать сотни ГБ/ТБ данных


⚙️ Установка:
pip install h2o


🔢 Документация

#библиотеки

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
👍115🥰2
😎 Распознание лиц на фото

📱 Python 3.6+
💾 Модули: opencv-python, numpy

📌 Скрипт в реальном времени захватывает видео с камеры, распознаёт лица и обводит их прямоугольниками.

🧑‍💻 Код:
import cv2

cap = cv2.VideoCapture(0)

face_cascade = cv2.CascadeClassifier(
cv2.data.haarcascades + "haarcascade_frontalface_default.xml")
body_cascade = cv2.CascadeClassifier(
cv2.data.haarcascades + "haarcascade_fullbody.xml")

while True:
_, frame = cap.read()

gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.3, 5)

for (x, y, width, height) in faces:
cv2.rectangle(frame, (x, y), (x + width, y + height), (255, 0, 0), 3)

cv2.imshow("Camera", frame)

if cv2.waitKey(1) == ord('q'):
break

cap.release()
cv2.destroyAllWindows()


🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
17👍13
🔥 Полезные библиотеки Python

optuna

📌 optuna — это современная и мощная библиотека для автоматического подбора гиперпараметров с помощью умных (байесовских и не только) стратегий.

📌 Особенности библиотеки:
🟠Поддерживает scikit-learn, PyTorch, XGBoost, LightGBM, и любые кастомные модели
🟠Быстрый поиск за счёт pruning (обрезания неудачных вариантов на ранней стадии)
🟠Простое API: пишешь целевую функцию и указываешь диапазоны параметров
🟠Поддержка распределённой оптимизации и визуализации


⚙️ Установка:
pip install optuna


🔢 Документация

#библиотеки

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥113👍2🤩1
Constructor-Telegram-Bots-master.zip
129.3 KB
📱 Скрипт конструктор Telegram ботов

📱 Python 3.11+🐍
💾 Модули: django
🖥 База данных: postgresql

📌 Это веб-приложение на Django с PostgreSQL, позволяющее пользователям создавать Telegram-ботов без кода — через простой интерфейс. Подходит для автосообщений, меню, кнопок и других функций. Работает на Python 3.11+.

#telegram

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥296👍5
🔥 Полезные библиотеки Python

dtreeviz

📌 dtreeviz — это библиотека для красивой и подробной визуализации деревьев решений, намного информативнее стандартных графиков

📌 Особенности библиотеки:
🟠Показывает, как данные проходят через узлы
🟠Поддерживает sklearn, xgboost, lightgbm
🟠Интерактивные графики с подписями, распределениями и split‑значениями


⚙️ Установка:
pip install dtreeviz


🔢 Документация

#библиотеки

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥115👍4
🖥 Автоматизация резервного копирования базы данных в AWS S3

📱 Python 3.6+
💾 Модули: boto3, botocore, subprocess, datetime

📌Скрипт делает бэкап MySQL-базы и загружает его на Amazon S3. Использует mysqldump и boto3 для автоматизации процесса.

⌨️ Код:
import subprocess
import boto3
import datetime
from botocore.exceptions import NoCredentialsError
# Configuration
DB_HOST = 'localhost'
DB_USER = 'your_db_user'
DB_PASSWORD = 'your_db_password'
DB_NAME = 'your_db_name'
S3_BUCKET_NAME = 'your-s3-bucket-name'
S3_REGION = 'us-west-2'
def backup_database():
timestamp = datetime.datetime.now().strftime('%Y%m%d%H%M%S')
backup_file = f"{DB_NAME}_backup_{timestamp}.sql"
dump_command = f"mysqldump -h {DB_HOST} -u {DB_USER} -p{DB_PASSWORD} {DB_NAME} > {backup_file}"
process = subprocess.Popen(dump_command, shell=True)
process.wait()
if process.returncode == 0:
print(f"Database backup successful: {backup_file}")
upload_to_s3(backup_file)
else:
print("Database backup failed.")
def upload_to_s3(file_name):
s3 = boto3.client('s3', region_name=S3_REGION)
try:
s3.upload_file(file_name, S3_BUCKET_NAME, file_name)
print(f"Backup file uploaded to S3: s3://{S3_BUCKET_NAME}/{file_name}")
except FileNotFoundError:
print("The backup file was not found.")
except NoCredentialsError:
print("AWS credentials not available.")
if __name__ == "__main__":
backup_database()


🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍5🔥3
🔥 Полезные библиотеки Python

ormar

📌 ormar — это асинхронный ORM (Object-Relational Mapper) для Python, созданный специально для работы с FastAPI, основан на SQLAlchemy и pydantic.

📌 Особенности библиотеки:
Асинхронный (async/await) — идеально для современных API
Модели основаны на pydantic — автоматическая валидация
Простой синтаксис, похож на Django ORM


⚙️ Установка:
pip install ormar


🔢 Документация

#библиотеки

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍4🔥2
🔥 Полезные библиотеки Python

piccolo

📌 piccolo — это современный асинхронный ORM и минималистичный веб-фреймворк для Python. Поддерживает миграции, асинхронные запросы и CLI-инструменты.

📌 Особенности библиотеки:
🟠Асинхронный, быстрый и лёгкий
🟠Встроенная система миграций
🟠Поддержка FastAPI
🟠Удобный CLI (piccolo команды)


⚙️ Установка:
pip install piccolo


🔢 Документация

#библиотеки

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍4🔥2😁1
👨‍💻 Автоматическая проверка срока действия SSL-сертификатов

📱 Python 3.6+
💾 Модули: ssl, socket, datetime

📌 Проверяет, через сколько дней истекает SSL-сертификат у указанного сайта и выводит предупреждение.

⌨️ Код:
import ssl
import socket
from datetime import datetime
def check_ssl_expiry(hostname):
context = ssl.create_default_context()
with socket.create_connection((hostname, 443)) as conn:
with context.wrap_socket(conn, server_hostname=hostname) as sock:
cert = sock.getpeercert()
expiry_date = datetime.strptime(cert['notAfter'], '%b %d %H:%M:%S %Y %Z')
days_to_expiry = (expiry_date - datetime.now()).days
print(f"SSL Certificate for {hostname} expires in {days_to_expiry} days.")
if __name__ == "__main__":
check_ssl_expiry("example.com")


🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍42🥰2
🔥 Выполнение команд на серверах через SSH

📱 Python 3.6+
💾 Модули: paramiko

📌 Автоматически подключается к удалённому серверу по протоколу SSH, выполняет заданную команду (например, ls -l, df -h, uptime или любую другую) и выводит результат в терминал. Такой скрипт удобен для администрирования серверов, мониторинга состояния системы или массового выполнения команд на нескольких хостах.

🧑‍💻 Код:
import paramiko  

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect("your_server_ip", username="user", password="pass")

stdin, stdout, stderr = ssh.exec_command("ls -l")
print(stdout.read().decode())

ssh.close()


🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
11👍3🔥1😁1