#!/usr/bin/env python # -*- coding: utf-8 -*- """ Скрипт для удаления всех HTML файлов из директории и подпапок """ import os import sys import io from pathlib import Path # Настройка UTF-8 для вывода в консоль (для Windows) if sys.platform == 'win32': sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8', errors='replace') sys.stderr = io.TextIOWrapper(sys.stderr.buffer, encoding='utf-8', errors='replace') def delete_html_files(target_dir, dry_run=True): """ Удаляет все HTML файлы из директории и подпапок Args: target_dir: Целевая директория dry_run: Если True - только показывает что будет удалено """ target_path = Path(target_dir) if not target_path.exists(): print(f"❌ Директория {target_dir} не найдена!") return print(f"🔍 Поиск HTML файлов в {target_dir}...\n") # Рекурсивно находим все HTML файлы html_files = list(target_path.rglob('*.html')) print(f"📊 Найдено HTML файлов: {len(html_files)}\n") if not html_files: print("✅ HTML файлов не найдено!") return # Показываем первые 20 файлов print("Примеры файлов для удаления (первые 20):") for i, file_path in enumerate(html_files[:20]): relative_path = file_path.relative_to(target_path) print(f" 🗑️ {relative_path}") if len(html_files) > 20: print(f" ... и еще {len(html_files) - 20} файлов") print() if dry_run: print("⚠️ Режим DRY RUN - файлы не будут удалены") print(" Запустите с --apply для применения изменений") return # Удаляем файлы print("🚀 Удаляю файлы...\n") deleted = 0 errors = 0 for file_path in html_files: try: if file_path.exists(): file_path.unlink() deleted += 1 if deleted <= 20 or deleted % 100 == 0: relative_path = file_path.relative_to(target_path) print(f" ✓ Удалено: {relative_path}") except Exception as e: errors += 1 print(f" ❌ Ошибка при удалении {file_path.name}: {e}") print(f"\n{'='*60}") print(f"✅ Удаление завершено!") print(f" Удалено: {deleted}") print(f" Ошибок: {errors}") print(f"{'='*60}") if __name__ == '__main__': import argparse parser = argparse.ArgumentParser(description='Удаление всех HTML файлов из директории') parser.add_argument('target_dir', type=str, nargs='?', default=r'E:\Programs\1C\УчетКинолога\Документация\ManualDevelop', help='Целевая директория') parser.add_argument('--apply', action='store_true', help='Применить изменения (по умолчанию: только показать план)') args = parser.parse_args() print("🗑️ Удаление HTML файлов\n") delete_html_files(args.target_dir, dry_run=not args.apply)