1
0
mirror of https://github.com/vanyagoncharov/parser_1cmycloud.git synced 2026-06-19 17:18:10 +02:00
Files
parser_1cmycloud/delete_html_files.py
2026-01-13 10:31:04 +03:00

99 lines
3.5 KiB
Python

#!/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)