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

Ваши предложения📝 @cmd_dark @CMD_Vega
Download Telegram
riddle.py из репозитория Trivernis/python-utility-scripts

📱 Python 3.6+
ℹ️ Модули: requests, os, argparse (в репозитории указаны зависимости)

📌 riddle.py — скрипт, который скачивает все изображения из одного или нескольких сабреддитов. Удобен, если ты хочешь быстро собрать изображения по теме, не вручную копируя ссылки.

👨‍💻 Пример кода (адаптированно):
import os
import requests
import argparse

def download_subreddit_images(subreddit, limit=50, dest="downloads"):
os.makedirs(dest, exist_ok=True)
url = f"https://www.reddit.com/r/{subreddit}/.json?limit={limit}"
headers = {"User-Agent": "Mozilla/5.0"}
resp = requests.get(url, headers=headers)
data = resp.json()

for post in data.get("data", {}).get("children", []):
img_url = post["data"].get("url")
if img_url and (img_url.endswith(".jpg") or img_url.endswith(".png")):
filename = os.path.basename(img_url)
path = os.path.join(dest, filename)
try:
img_data = requests.get(img_url).content
with open(path, "wb") as f:
f.write(img_data)
print("Downloaded:", filename)
except Exception as e:
print("Ошибка скачивания", img_url, e)

if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Download images from subreddit")
parser.add_argument("subreddit", help="Name of subreddit")
parser.add_argument("--limit", type=int, default=20, help="How many posts to parse")
parser.add_argument("--dest", default="downloads", help="Destination folder")
args = parser.parse_args()

download_subreddit_images(args.subreddit, limit=args.limit, dest=args.dest)


📌 Что делает:
🟢 Делает HTTP-запрос к API Reddit (JSON)
🟢 Парсит посты, проверяет, есть ли в url изображения (.jpg/.png)
🟢 Скачивает найденные изображения в папку
🟢 Поддерживает указание количества постов через параметр limit
🟢 Печатает статус каждого скачанного файла


🔗 Репозиторий GitHub

#скрипты

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

PyXAB

📌 PyXAB — библиотека для X-armed бандитов и онлайн blackbox оптимизации. Предназначена для задач, где пространство действий непрерывно или высокоразмерно, и классические дискретные методы бандитов не подходят. Реализует такие алгоритмы, как HOO, StoSOO, HCT, GPO и др., а также даёт инструменты для оценки и синтетические функции для экспериментов.

📌 Особенности библиотеки:
🟢 Поддерживает несколько алгоритмов X-armed бандитов — HOO, StoSOO, HCT, а также более современные подходы GPO, VHCT и др.
🟢 Встроенные синтетические функции (test functions) для отладки и сравнительной оценки алгоритмов.
🟢 Гибкость в выборе разбиения пространства, параметров модели и стратегии поиска.
🟢 Документированная программная обвязка: интерфейсы для запуска экспериментов, анализа результатов, визуализации.
🟢 Открытая лицензия MIT, исходники на GitHub, доступна через PyPI.


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


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

#библиотеки

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥42
Desktop Cleaner Script

📱 Python 3.x
ℹ️ Модули: winshell, tqdm, pywin32 — для работы под Windows.

📌 Desktop Cleaner Script — утилита-скрипт, которая автоматизирует очистку рабочего стола и системных временных папок на Windows: удаляет мусор, очищает временные файлы, предлагает меню для выбора задач очистки, помогает освободить место без ручной работы.

👨‍💻 Код / использование (примеры из репозитория):

• Установка зависимостей:

pip install winshell tqdm pywin32


• Запуск:
python cleanup.py


📌 Что делает:
🟢 Автоматически чистит “мусор” на Windows: рабочий стол, временные директории, логи и др.
🟢 Имеет удобное меню, чтобы выбрать, что именно очистить.
🟢 Запрашивает права администратора, если нужно.
🟢 Показывает прогресс операций и логирует действия.


🔗 Репозиторий GitHub

#скрипты

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3😁32🔥1
python_utilities/Parallelizer

📱 Python 3.7+
💾 Модули: multiprocessing, threading, os, io_tools, scripting — часть общей библиотеки утилит python_utilities на GitHub.

📌 Parallelizer — скрипт / утилита внутри python_utilities, который помогает запускать одну и ту же функцию в разных средах (локально, многопроцессно или на кластере через MPI) без изменения кода. То есть ты пишешь функцию “обычно”, а Parallelizer распределит задачи на worker’ы — в зависимости от окружения.

👨‍💻 Пример использования:
from python_utilities.parallel import Parallelizer, make_data_iterator
from python_utilities.scripting import setup_logging

def process_item(item, constant=10):
return item * constant

def main():
setup_logging()
data = list(range(100))
par = Parallelizer(func=process_item, data=data, n_jobs=4)
results = par.run()
print(results)

if __name__ == "__main__":
main()


📌 Что делает:
🟢 Унифицирует способы параллелизации: локально или распределённо
🟢 Не требует переписывания кода функций под “parallel” — простая обёртка
🟢 Подходит для обработки больших наборов данных или задач, которые можно распараллелить


🔗 Репозиторий GitHub

#скрипты

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

Generic-Util

📌 Generic-Util — библиотека, которую мало кто знает, но она реально полезна: набор удобных функций, которых нет (или не так удобно) в стандартной библиотеке. Особенно для benchmarking, функционального программирования и обёрток, чтобы быстрее делать утилиты.

📌 Особенности библиотеки:
🟢 Содержит модули примерно таких групп: benchmarking — контекст-менеджеры и функции, чтобы измерять время выполнения разных реализаций, и суммировать результаты.
🟢 Утилиты “функционального стиля” (маппинг, фильтрация, композиция), которые облегчают работу, особенно если часто пишешь вспомогательный код.
🟢 Не зависит от внешних тяжёлых библиотек, использует стандартную библиотеку + минимум нужного.
🟢 Подходит, когда надо быстро сравнить реализации, профилировать, или просто сделать утилиту “на лету”, не заморачиваясь с boilerplate.


⚙️ Установка:
pip install Generic-Util


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

#библиотеки

🖥' Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
👍65🔥3
Python Script Packager — утилита, которая упаковывает несколько .py файлов в один минимизированный скрипт

📱 Python 3.8+
ℹ️ Модули: os, shutil (стандартные), python_minifier (для удаления пробелов/комментариев и “минификации”), GitPython (для работы с git, если скрипты из репозитория). 

📌 Скрипт packer.py из gist пользователя JMcrafter26 автоматически берёт заданный перечень файлов Python (основной + вспомогательные), минифицирует их, объединяет в один файл — удобно для дистрибуции, когда хочется отправить один “собранный” скрипт вместо множества модулей. 

👨‍💻 Пример кода (адаптация из gist):
import os
import shutil
from python_minifier import minify
from git import Repo # GitPython

# Настройки
remove_comments = True
minify_rename_vars = False
program_allowed = [
'main_server.py',
'packets.py',
'protocol.py',
'regex_patterns.py',
'socket_handler.py',
]

def load_files(files):
contents = []
for file in files:
with open(file, 'r', encoding='utf-8') as f:
text = f.read()
if remove_comments:
# python_minifier(minify) сам удаляет комментарии
text = minify(text, rename_locals=minify_rename_vars)
contents.append(f"# Begin {file}\n" + text + f"\n# End {file}\n")
return "\n".join(contents)

def package_script(output_file='packaged.py'):
code = load_files(program_allowed)
with open(output_file, 'w', encoding='utf-8') as f:
f.write(code)
print(f"Packaged into {output_file}")

if name == "__main__":
package_script()


📌 Что делает:
🟢 Берёт список Python файлов, объединяет их содержимое в один файл.
🟢 Минифицирует код: убирает комментарии, пробелы, возможно переименование переменных.
🟢 Позволяет собрать все модули проекта в один “соло-скрипт”, удобно для простого деплоя или когда структура проекта не критична.
🟢 Уменьшает количество файлов, упрощает распространение скрипта без множества зависимостей файловой структуры.


🔗 Репозиторий GitHub

#скрипты

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

pypi-latest

📌 pypi-latest — утилита-библиотека, которая проверяет, является ли установленная версия пакета на твоём компьютере самой последней, доступной на PyPI. Удобна, если ты работаешь с множеством зависимостей и хочешь быстро убедиться, что всё “в актуале”.

📌 Особенности библиотеки:
🟢 Простота — минимализм: всего одна задача — проверка версии и сообщение о необходимости обновления.
🟢 Работает как библиотека и как инструмент командной строки.
🟢 Лёгкая зависимость — не требует множества дополнительных пакетов.
🟢 Может быть интегрирована в скрипты или CI-процессы, чтобы автоматически предупреждать разработчика, что пакет устарел.


⚙️ Установка:
pip install pypi-latest


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

#библиотеки

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
👍43🔥1
autoDownloader

📱 Python 3.9+
ℹ️ Модули: В репозитории скрипта.

📌 autoDownloader — скрипт, который позволяет автоматизированно проверять заданные источники (RSS, HTML или текстовые файлы), и при появлении новых ссылок скачивать контент. Идеален для подписки на обновления: журналы, блоги, файлы, медиа.

👨‍💻 Пример использования и конфигурации:

Установка:
cd autoDownloader
pip install -r requirements.txt


Конфиг config.json:
{
"items": [
{
"name": "Новости Блога",
"dest_dir": "/home/user/auto_downloads",
"provider": {
"type": "RssProvider",
"url": "https://someblog.com/rss.xml",
"xpaths": {
"title": "/item/title",
"items": "//item",
"url": "/item/link"
}
},
"cache": {
"type": "FileCache",
"path": "/home/user/auto_downloads/cache.txt"
},
"downloader": {
"type": "HttpDownloader",
"method": "GET"
},
"post_downloads_script": "/home/user/scripts/notify_new.sh"
}
]
}


📌 Что делает:
🟢 Проверяет источники на новые записи / ссылки
🟢 Если появляются новые URL — скачивает
🟢 Использует кэш, чтобы не перезагружать то, что уже скачано
🟢 Можно подцепить свои скрипты перед/после скачивания, чтобы делать автоматические действия
🟢 Отлично подходит для автоматизации сбора данных, распространения материалов или мониторинга новых публикаций


🔗 Репозиторий GitHub

#скрипты

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

python-magic

📌 python-magic — это обёртка на Python вокруг библиотеки libmagic, которая позволяет определять тип файлов, анализируя заголовки (magic numbers), а не только расширения. То есть ты можешь узнать, что внутри файла — PDF, PNG, архив, текст и т.д. — даже если расширение .bin или .dat.

📌 Особенности библиотеки:
🟠 Определение формата по содержимому: magic.from_file("file") или magic.from_buffer(data) — когда файл ещё не записан на диск.
🟠 Можно вернуть MIME-тип: mime=True.
🟠 Может быть небезопасным для параллельного использования (не потокобезопасен) при некоторых конфигурациях.
🟠 Требует установить libmagic (C-библиотека) на систему: на Linux/Unix её обычно устанавливают через менеджер пакетов, на Windows — использовать python-magic-bin с DLL.


⚙️ Установка:
pip install python-magic


На Windows:
pip install python-magic-bin


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

#библиотеки

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥84👍2
all-github / all-gists downloader — скрипт, который скачивает все репозитории и гисты пользователя на Github

📱 Python 3.x
ℹ️ Модули: urllib.request, json, os, subprocess, getopt — используется встроенный HTTP-API GitHub и системные вызовы git clone. 

📌 all-github / all-gists downloader — утилита командной строки, которую запускаешь с указанием имени пользователя GitHub и каталога назначения — и скрипт скачивает все публичные репозитории и гисты этого пользователя. Полезно для бэкапа кода, архивации своих проектов или просмотра чужих проектов локально. 

👨‍💻 Пример кода (фрагмент из gist “all-github.py”):
import getopt
import json
import os
import subprocess
import sys
from urllib.request import urlopen

def Usage():
print("Usage: %s -u <github user> -d <directory>" % sys.argv[0])

def main():
githubUser = ''
destDirectory = ''
try:
opts, args = getopt.getopt(sys.argv[1:], "u:d:h")
for o, a in opts:
if o == '-u':
githubUser = a
elif o == '-d':
destDirectory = a
elif o == '-h':
Usage()
sys.exit(0)
except getopt.GetoptError as e:
print(str(e))
Usage()
sys.exit(2)

if not githubUser or not destDirectory:
print("Use -u for GitHub user, -d for destination dir")
Usage()
sys.exit(0)

reposLink = f"https://api.github.com/users/{githubUser}/repos?type=all&per_page=100&page=1"
f = urlopen(reposLink)
repos = json.loads(f.readline())
print("Total repos:", len(repos))

os.makedirs(destDirectory, exist_ok=True)
os.chdir(destDirectory)

os.makedirs("repos", exist_ok=True)
os.makedirs("gists", exist_ok=True)

# Скачиваем репозитории
os.chdir("repos")
for repo in repos:
print("Cloning:", repo['html_url'])
subprocess.call(['git', 'clone', repo['html_url']])

# Скачиваем гисты
os.chdir("../gists")
gistsLink = f"https://api.github.com/users/{githubUser}/gists"
f = urlopen(gistsLink)
gists = json.loads(f.readline())
print("Total gists:", len(gists))
for gist in gists:
print("Cloning gist:", gist.get('git_pull_url'))
subprocess.call(['git', 'clone', gist.get('git_pull_url')])

if __name__ == "__main__":
main()


📌 Что делает:
🟢 Получает список репозиториев пользователя через GitHub API
🟢 Клонирует каждый репозиторий командой git clone
🟢 Получает список гистов и клонирует их как отдельные git-репо
🟢 Кладёт всё это в структуру папок: repos/ и gists/ в указанном каталоге


🔗 Репозиторий GitHub

#скрипты

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍3🔥1
yt-downloader-multi — скрипт для скачивания видео и аудио с YouTube и других платформ массово

📱 Python 3.9+
ℹ️ Модули: yt-dlp, os, sys, ffmpeg — используется для скачивания и обработки медиафайлов.

📌 yt-downloader-multi — утилита командной строки, которая позволяет скачивать видео и аудио с YouTube (включая целые плейлисты) и сохранять их в указанную папку. Полезно для локального архива видео, оффлайн-просмотра и создания коллекций медиа.

👨‍💻 Пример использования:
yt-downloader-multi https://www.youtube.com/watch?v=VIDEO_ID --format mp3 --quality 192k


📌 Что делает:
🟢 Скачивает одиночные видео по ссылке
🟢 Скачивает все видео из плейлистов
🟢 Сохраняет контент в указанную папку, создавая её при необходимости
🟢 Поддерживает оффлайн-архивирование медиаконтента


🔗 Репозиторий GitHub

#скрипты

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

pytube

📌 pytube — лёгкая и независимая от зависимостей библиотека Python для скачивания видео с YouTube. Предоставляет простой интерфейс для загрузки видео и аудио, а также для работы с субтитрами и миниатюрами. Подходит для создания локальных коллекций медиафайлов, оффлайн-просмотра и архивации контента.

📌 Особенности библиотеки:
🟢 Простота использования — интуитивно понятный интерфейс для скачивания видео и аудио.
🟢 Поддержка субтитров — возможность загрузки субтитров в формате .srt.
🟢 Получение миниатюр — легкий доступ к URL-адресам миниатюр видео.
🟢 Отсутствие сторонних зависимостей — не требует установки дополнительных пакетов.
🟢 Поддержка прогрессивных и DASH-потоков — скачивайте видео и аудио в различных качествах.
🟢 Загрузка целых плейлистов — скачивайте все видео из плейлиста с помощью одной команды.
🟢 Обработка событий — настройка обратных вызовов для отслеживания прогресса загрузки и завершения процесса.


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


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

#библиотеки

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

FastText-aligned

📌 FastText-aligned — расширение для библиотеки fastText, которое позволяет подгонять (align) эмбеддинги из одной языковой модели к эмбедингам другой так, чтобы они были совместимыми в одном векторном пространстве. Это особенно полезно при работе с мультиязычными моделями, когда эмбеддинги с разных языков или доменов нужно сравнивать напрямую.

📌 Особенности библиотеки:
🟢 Поддержка подгонки (alignment) методом Procrustes, Orthogonal Procrustes и др.
🟢 Совместимость с эмбедингами fastText (бинарные и текстовые форматы).
🟢 API, похожий на оригинальный fastText: load_model, align_to, get_vector.
🟢 Работает как вспомогательный инструмент, легко интегрируется в NLP-пайплайны, например для кроссъязыковых задач.


⚙️ Установка:
pip install fasttext-aligned


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

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍2🔥1
Google Image Downloader — скрипт, который скачивает изображения с Google по заданному поисковому запросу

📱 Python 3.x
ℹ️ Модули: requests, os, re, urllib.parse, bs4 (BeautifulSoup) — используется HTTP-запросы к Google Images, HTML-парсинг ссылок и загрузка файлов.

📌 Google Image Downloader — утилита командной строки, вызываешь с запросом (напр. “cats”) и путь, и скрипт скачивает N изображений по этому запросу, фильтрует по расширениям, сохраняет в папку. Полезно, когда нужны картинки для датасетов, фоновые изображения, иллюстрации.

👨‍💻 Пример кода (адаптация):
import os
import requests
from bs4 import BeautifulSoup
from urllib.parse import urljoin, urlparse

def download_images(query, num_images=10, dest_folder="images"):
os.makedirs(dest_folder, exist_ok=True)
search_url = f"https://www.google.com/search?tbm=isch&q={query}"
headers = {"User-Agent": "Mozilla/5.0"}
resp = requests.get(search_url, headers=headers)
soup = BeautifulSoup(resp.text, "html.parser")
img_tags = soup.find_all("img")
count = 0
for img in img_tags:
img_url = img.get("src")
if not img_url:
continue
parsed = urlparse(img_url)
ext = os.path.splitext(parsed.path)[1]
if ext.lower() not in [".jpg", ".png", ".jpeg"]:
continue
filename = f"{query}_{count}{ext}"
filepath = os.path.join(dest_folder, filename)
try:
img_data = requests.get(img_url, timeout=5).content
with open(filepath, "wb") as f:
f.write(img_data)
print("Downloaded:", filename)
count += 1
if count >= num_images:
break
except Exception as e:
print("Error:", e)
continue

if __name__ == "__main__":
download_images("sunset", num_images=5)


📌 Что делает:
🟢 Делает запрос Google Images с ключевым словом
🟢 Парсит HTML и находит теги <img>
🟢 Отбирает ссылки с допустимыми расширениями
🟢 Скачивает изображения и сохраняет в папку, пока не наберёт нужное число


🔗 Репозиторий GitHub

#скрипты

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

TabPFN

📌 TabPFN — библиотека / модель машинного обучения, специализирующаяся на табличных данных. Это “foundation model” для табличных задач: классификация и регрессия на небольших и средних наборах данных. Модель уже обучена заранее и может давать полезные предсказания “из коробки”, особенно когда данных не много.

📌 Особенности библиотеки:
🟢 Работает без необходимости обучать модель с нуля — готова к применению на новых табличных данных.
🟢 Использует трансформерный подход, обученный на синтетических данных, чтобы понимать паттерны в табличных данных.
🟢 Поддерживает как классификацию, так и регрессию.
🟢 Подходит для “малых данных”, когда классические deep learning методы часто переобучаются.
🟢 Открытая лицензия Apache-2.0, исходники на GitHub, пакет доступен на PyPI.


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


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

#библиотеки

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥3
hseera/python-utilities — скрипты для автоматизации повседневных задач и обработки данных

📱 Python 3.x
ℹ️ Модули: разные в зависимости от утилиты — os, csv, json, argparse и др.

📌 hseera/python-utilities - набор утилит для обработки файлов, сортировки данных, анализа логов, преобразования CSV/JSON и др. Cкрипты небольшие, легко интегрируемые, не завязаны на большой фреймворк.

👨‍💻 Пример одного скрипта — Merge Files Column (из репо):
import os
import csv
import argparse

def merge_columns(input_files, output_file, column_index):
with open(output_file, 'w', newline='', encoding='utf-8') as out:
writer = csv.writer(out)
for infile in input_files:
with open(infile, newline='', encoding='utf-8') as f:
reader = csv.reader(f)
for row in reader:
if len(row) > column_index:
writer.writerow([row[column_index]])
else:
writer.writerow([''])
print("Merged into", output_file)

if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument('inputs', nargs='+', help='Input CSV files')
parser.add_argument('-o', '--output', required=True, help='Output file')
parser.add_argument('-c', '--col', type=int, default=0, help='Column index to merge')
args = parser.parse_args()
merge_columns(args.inputs, args.output, args.col)


📌 Что делает:
🟢 Читает несколько CSV файлов
🟢 Выбирает одну колонку (индекс) из каждой строки
🟢 Объединяет эти колонки в один выходной файл
🟢 Полезно при аналитике, когда нужно “собрать” один показатель из разных источников


🔗 Репозиторий GitHub

#скрипты

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

Plotnine

📌 Plotnine — библиотека для создания статистических визуализаций в Python, основанная на принципах "grammar of graphics", заимствованных из R-пакета ggplot2. Она предоставляет декларативный и мощный способ создания графиков, позволяя пользователю сосредоточиться на данных и их представлении, а не на технических деталях построения графиков.

📌 Особенности библиотеки:
🟢 Поддерживает широкий спектр статистических графиков, включая гистограммы, диаграммы рассеяния, линейные графики и др.
🟢 Позволяет легко комбинировать различные элементы графиков, такие как оси, легенды, заголовки и т.д.
🟢 Обеспечивает высококачественные визуализации, которые легко интегрируются с другими библиотеками Python.
🟢 Идеально подходит для анализа и визуализации данных в научных и исследовательских проектах.


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


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

#библиотеки

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥43👍3
Internet Connectivity Monitor

📱 Python 3.x
ℹ️ Модули: subprocess, time, csv, возможно datetime — скрипт периодически пингует выбранный IP/хост и логирует статус и задержки.

📌 Internet Connectivity Monitor — утилита, которая следит за стабильностью интернет-подключения: пингует указанный хост/сервер с заданным интервалом и записывает в CSV лог с временными метками, статусом “online” или “outage” и задержкой (ms). Подходит, если хочешь видеть периоды провалов связи.

👨‍💻 Пример кода (упрощённый вариант):
import subprocess
import time
import csv
from datetime import datetime

HOST = "8.8.8.8"
INTERVAL = 60 # секунда
LOG_FILE = "connectivity_log.csv"

def ping(host):
# ping для Linux/macOS; под Windows может быть другой ключ
result = subprocess.run(["ping", "-c", "1", host], capture_output=True)
return result.returncode == 0, result

def log_status(timestamp, status, latency):
with open(LOG_FILE, "a", newline="") as f:
writer = csv.writer(f)
writer.writerow([timestamp, status, latency])

def extract_latency(output):
# пробуем парсить строку ping-ответа
out = output.decode('utf-8', errors='ignore')
# строка вида: time=12.345 ms
for part in out.split():
if part.startswith("time="):
try:
return float(part.split("=")[1])
except:
pass
return None

def main():
# заголовок CSV, если файл новый
try:
with open(LOG_FILE, "x") as f:
writer = csv.writer(f)
writer.writerow(["timestamp", "status", "latency_ms"])
except FileExistsError:
pass

while True:
ts = datetime.now().isoformat()
ok, res = ping(HOST)
latency = None
if ok:
latency = extract_latency(res.stdout)
status = "online"
else:
status = "outage"
log_status(ts, status, latency)
print(f"{ts} — {status} — {latency}")
time.sleep(INTERVAL)

if name == "__main__":
main()


📌 Что делает:
🟢 Пингует указанный хост (по умолчанию 8.8.8.8) с интервалом
🟢 Определяет, отвечает ли хост (если нет — “outage”)
🟢 Если ответ — парсит задержку (ms)
🟢 Записывает лог в формате CSV: временная метка, статус, задержка
🟢 Выводит в консоль текущее состояние


🔗 Репозиторий GitHub

#скрипты

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

rembg

📌 rembg — библиотека для удаления фона из изображений (background removal) с помощью нейросетевых моделей. Отличный инструмент, если нужно автоматически “вырезать” объект и сделать фон прозрачным — например, для продуктов, портретов, дизайна.

📌 Особенности библиотеки:
🟢 Использует предобученные модели — не нужно самому тренить что-то тяжелое
🟢 Работает быстро: может обрабатывать отдельные изображения или батчами
🟢 Поддерживает разные форматы изображений (PNG, JPG и др.)
🟢 Может быть использована в скриптах, приложениях или на сервере
🟢 Легко интегрируется с PIL/Pillow или OpenCV


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


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

#библиотеки

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍2
USBKill — скрипт-защита от несанкционированных USB-устройств

📱 Python 3.x
ℹ️ Модули: использует стандартные библиотеки os, subprocess, time и работу с устройствами USB в UNIX-подобных системах.

📌 USBKill — это “kill switch” скрипт, который следит за USB-портами и если к компьютеру подключается устройство, не находящееся в белом списке, — выполняет заранее заданное действие: выключает систему, удаляет данные из оперативной памяти или swap-файл. Полезно, если нужно защититься от физического доступа злоумышленников.

👨‍💻 Пример (упрощённая логика):
import time
import subprocess

WHITELIST = ["Device1_ID", "Device2_ID"]
CHECK_INTERVAL = 1 # секунда

def list_usb_devices():
# команда lsusb — показывает USB-устройства на Linux
output = subprocess.check_output(["lsusb"]).decode()
return output.splitlines()

def monitor():
while True:
devices = list_usb_devices()
for d in devices:
# простая проверка: если строка не содержит ни одного whitelist ID
if all(w not in d for w in WHITELIST):
# небелое устройство — активируем защиту
print("Unknown USB device detected:", d)
# Пример действия: выключить систему
subprocess.call(["shutdown", "now", "-h"])
return
time.sleep(CHECK_INTERVAL)

if __name__ == "__main__":
monitor()


📌 Что делает:
🟢 Мониторит список USB-устройств
🟢 Сравнивает с белым списком
🟢 При обнаружении “чужого” устройства — выполняет “жёсткое” действие (shutdown, удаление, очистка)
🟢 Полезен как антифизическая защита при чувствительных данных


🔗 Репозиторий GitHub

#скрипты

🖥 Python_Scripts
Please open Telegram to view this post
VIEW IN TELEGRAM
17👍7