This media is not supported in your browser
VIEW IN TELEGRAM
Для массового сжатия изображений в коде используется библиотека
Pillow
, для добавления прогресс-бара - tqdm
.pip install Pillow tqdm
from pathlib import Path
from PIL import Image
from tqdm import tqdm
def process_images_compact(input_path: str, output_folder: str = 'out', max_width: int = 1920, quality: int = 85):
out_dir = Path(output_folder)
out_dir.mkdir(parents=True, exist_ok=True)
allowed_exts = {'.jpg', '.jpeg', '.png'}
# Собираем список всех файлов в input_path (и подпапках), которые имеют разрешенные расширения
# rglob('*') рекурсивно ищет все файлы и папки
files = [p for p in Path(input_path).rglob('*') if p.suffix.lower() in allowed_exts]
for p in tqdm(files, leave=False):
# Открываем изображение с помощью Pillow
im = Image.open(p)
# Получаем текущие ширину и высоту изображения
w, h = im.size
# Проверяем, превышает ли ширина изображения заданную максимальную ширину
if w > max_width:
# Вычисляем коэффициент масштабирования
ratio = max_width / w
# Изменяем размер изображения, сохраняя пропорции
im = im.resize((max_width, int(h * ratio)))
# Определяем полный путь для сохранения обработанного изображения в выходной папке
output_file_path = out_dir / p.name
# Сохраняем изображение
if p.suffix.lower() == '.png':
im.save(output_file_path, optimize=True)
else:
im.save(output_file_path, quality=quality, optimize=True)
if __name__ == "__main__":
process_images_compact('my_photos', output_folder='resized_photos', max_width=1024, quality=80)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤🔥2🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Основные возможности:
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5❤🔥2👍1
Основные возможности:
pip install scrubadub
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥3👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Для отслеживания изменений в директории в коде используется библиотека watchdog.
pip install watchdog
import time
from watchdog.observers import Observer
from watchdog.events import FileSystemEventHandler
import os
class MyEventHandler(FileSystemEventHandler):
def on_any_event(self, event):
"""Логирует любое событие файловой системы."""
if event.is_directory:
event_type = "Каталог"
else:
event_type = "Файл"
if event.event_type == 'created':
print(f"СОЗДАН: {event_type} {event.src_path}")
elif event.event_type == 'deleted':
print(f"УДАЛЕН: {event_type} {event.src_path}")
elif event.event_type == 'modified':
print(f"ИЗМЕНЕН: {event_type} {event.src_path}")
elif event.event_type == 'moved':
print(f"ПЕРЕМЕЩЕН: {event_type} из {event.src_path} в {event.dest_path}")
def start_watching(path):
event_handler = MyEventHandler()
observer = Observer()
observer.schedule(event_handler, path, recursive=True)
observer.start()
print(f"Мониторинг папки: {path}. Нажмите Ctrl+C для остановки.")
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
print("Мониторинг остановлен.")
if __name__ == "__main__":
# Замените 'путь_к_папке' на фактический путь к папке, которую вы хотите отслеживать
folder_to_watch = 'путь_к_папке'
# Создаем папку, если она не существует (необязательно, для демонстрации)
if not os.path.exists(folder_to_watch):
os.makedirs(folder_to_watch)
print(f"Создана папка для демонстрации: {folder_to_watch}")
start_watching(folder_to_watch)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👍2❤🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Ориентирован на конвертацию документов (PDF) в подкаст‑формат, где AI генерирует скрипт и превращает его в аудио разговор между двумя «ведущими».
Основные возможности:
bark
и Parler‑tts
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4❤🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
Основные особенности
pip install vizro
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4❤🔥1
Основные особенности:
⚠️ Информация предоставлена исключительно в образовательных целях. Использование в незаконных действиях запрещено.
pip install cai-framework
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥3🔥2👍1
Основные возможности:
NumPy
pip install pyopencl
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥2👍2🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Для работы с файлами в коде используется стандартный модуль
os
.Как работает скрипт:
import os
def search_string_in_files(folder_path, search_string):
# Проходимся по всем файлам и папкам, начиная с указанного пути
for root, _, files in os.walk(folder_path):
# Итерируемся по каждому файлу в текущей папке
for file_name in files:
file_path = os.path.join(root, file_name)
try:
# Открываем файл для чтения в режиме "r" с кодировкой "utf-8"
with open(file_path, "r", encoding="utf-8", errors="ignore") as file:
# Итерируемся по каждой строке в файле, начиная нумерацию с 1
for line_number, line in enumerate(file, start=1):
# Проверяем, содержится ли искомая строка в текущей строке файла
if search_string in line:
print(f"[Найдено] {file_path} (строка {line_number}): {line.strip()}")
except (IOError, OSError):
print(f"[Ошибка] Не удалось открыть файл: {file_path}")
if __name__ == "__main__":
folder = input("Введите путь к папке: ")
query = input("Введите строку для поиска: ")
search_string_in_files(folder, query)
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥4🔥4
Предоставляет широкий набор инструментов для построения и оценки статистических моделей, проверки гипотез и анализа временных рядов.
Основные особенности:
NumPy
, pandas
, SciPy
pip install statsmodels
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥2👍2
⚒️ pyrsistent — это Python-библиотека для работы с персистентными (иммутабельными) структурами данных, которая обеспечивает безопасное и предсказуемое поведение объектов без их изменения.
Полезна, когда требуется неизменяемость данных, например, в функциональном программировании или при многопоточности.
Основные возможности:
🔵 Неизменяемые коллекции: список, словарь, множество и другие.
🔵 Эффективное копирование — изменения создают новую структуру без полного копирования данных.
🔵 Вложенные структуры с безопасными обновлениями.
🔵 Высокая производительность за счёт структурных оптимизаций.
🔵 Удобна для тестирования и работы с чистыми функциями.
➡️ Установка:
📱 Репозиторий
⚙️ Документация
➡️ Справочник Программиста. Подписаться
Полезна, когда требуется неизменяемость данных, например, в функциональном программировании или при многопоточности.
Основные возможности:
pip install pyrsistent
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Анализирует последнюю введённую команду, пытается сопоставить её с набором правил и предлагает исправленную версию, которую можно выполнить с помощью команды
fuck
.Основные особенности:
pip install thefuck
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8❤🔥3👍1
Django
, которое добавляет поддержку асинхронных протоколов, таких как WebSockets, MQTT, а также возможности для долгосрочных соединений и фоновых задач.Это позволяет создавать приложения с реальным временем, такие как чаты, уведомления, игры и системы мониторинга, при этом сохраняя привычную архитектуру
Django
.Основные особенности:
Django
pip install channels
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥2🔥2
Шпаргалка по регулярным выражениям
🔥 Сохрани, чтобы не потерять!
➡️ Справочник Программиста. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥3👍2🔥2
⚒️ pluggy — это минималистичная, готовая к производственному использованию система плагинов.
Основные возможности:
🔵 Объявление и использование hook-спецификаций для точек расширения.
🔵 Регистрация и управление плагинами через PluginManager.
🔵 Поддержка нескольких реализаций одного hook-а.
🔵 Контроль порядка выполнения плагинов по приоритету.
🔵 Возможность динамического подключения и отключения плагинов.
🔵 Интеграция с entry points для автозагрузки плагинов.
🔵 Безопасная передача и сбор результатов от всех hook-ов.
🔵 Минимальный размер и высокая производительность.
➡️ Установка:
📱 Репозиторий
⚙️ Документация
➡️ Справочник Программиста. Подписаться
Основные возможности:
pip install pluggy
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥2👍2🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Для сравнения изображений в коде используется библиотека
imagehash
, а для работы с изображениями - Pillow
.pip install Pillow imagehash
from PIL import Image
import imagehash
import os
def find_duplicate_images(folder):
hashes = {} # Словарь для хранения хэшей изображений и соответствующих им имен файлов
for filename in os.listdir(folder):
# Проверяем, что файл имеет расширение изображения
if filename.endswith(('.png', '.jpg', '.jpeg')):
path = os.path.join(folder, filename)
hash_val = imagehash.average_hash(Image.open(path)) # Создаем хэш изображения
if hash_val in hashes: # Если такой хэш уже встречался
print(f"Дубликат: {filename} и {hashes[hash_val]}") # Выводим найденный дубликат
else:
hashes[hash_val] = filename # Сохраняем хэш и имя файла в словарь
if __name__ == '__main__':
folder = input("Введите путь к папке с изображениями: ")
find_duplicate_images(folder)
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥3🔥3
Основные возможности:
pandas
, NumPy
и PyArrow
pip install datatable
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥3👍1🔥1
⚒️ LIEF — это библиотека для анализа и модификации исполняемых форматов, совместимая с различными операционными системами и языками программирования.
Основные особенности:
🔵 Поддержка форматов ELF, PE, Mach-O, OAT, DEX, VDEX и ART
🔵 Единая абстрактная модель для работы с разными бинарными форматами
🔵 Возможность анализа и модификации исполняемых файлов
🔵 Поддержка языков C++, Python, Rust и частично C
🔵 Расширенная версия LIEF Extended с поддержкой DWARF, PDB, Objective-C, dyld shared cache, дизассемблера и ассемблера
🔵 Интеграции с Ghidra и Binary Ninja
🔵 Кроссплатформенная работа на Windows, Linux и macOS
➡️ Установка:
📱 Репозиторий
⚙️ Документация
➡️ Справочник Программиста. Подписаться
Основные особенности:
pip install lief
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥3👍2
🌐 Код для сканирования открытых вкладок в Google Chrome на Python
Для отправки GET-запроса для получения данных о вкладках в формате JSON в коде используется библиотека
➡️ Установка библиотеки:
Как использовать:
✅ Запустить Chrome с отладочным портом:
✅ Запустить скрипт — он выведет список всех открытых вкладок (название + URL).
➡️ Справочник Программиста. Подписаться
Для отправки GET-запроса для получения данных о вкладках в формате JSON в коде используется библиотека
requests
.pip install requests
import requests
def get_chrome_tabs(debug_port=9222):
"""
Получает и выводит список открытых вкладок Chrome через удаленную отладку.
Args:
debug_port (int): Порт, на котором включена удаленная отладка.
По умолчанию используется порт 9222.
"""
try:
response = requests.get(f"http://localhost:{debug_port}/json")
tabs = response.json()
if not tabs:
print("Нет открытых вкладок или отладка не включена.")
return
for i, tab in enumerate(tabs, start=1):
title = tab.get('title', 'Без названия')
url = tab.get('url', 'Без URL')
print(f"{i}. {title} — {url}")
except requests.exceptions.ConnectionError:
print(f"Не удалось подключиться к Chrome (порт {debug_port}).")
print("Убедитесь, что Chrome запущен с ключом: chrome.exe --remote-debugging-port=9222")
if __name__ == "__main__":
get_chrome_tabs()
Как использовать:
chrome.exe --remote-debugging-port=9222
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4🤔2❤🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Основные возможности:
polars DataFrame
scikit-learn
pip install drawdata
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥2🤨1