Как я нашёл 1100 книг-призраков и приручил Python
У меня накопилось 22 000+ книг. Электронных. За 10 лет.
Разные форматы: PDF, EPUB, DOCX. Разные папки: "Книги", "Библиотека", "Архив_старое", "ToRead". И, конечно, переводы с разными названиями — одна и та же книга могла лежать в трёх местах с тремя именами.
Дубликатов оказалось больше тысячи. А руками проверять 22 тысячи файлов — это не вариант.
Написал на Python скрипт за 20 минут:
рекурсивно обходит все папки и подпапки;
считает MD5 каждого файла;
группирует одинаковые хеши;
выводит список дубликатов в текстовый файл.
Прогресс-бар, логи ошибок отдельно, консоль чистая. Красиво.
Итог:
22347 файлов
1128 групп дубликатов
Освобождено ~36 ГБ на диске
Всё за 20 минут работы скрипта
Кодинг — это когда ты не ищешь дубликаты руками, а пишешь инструмент, который сделает это за тебя.
Python + пара строчек кода = порядок в цифровом хаосе.
P.S. Скрипт оставлю в репозитории. Вдруг у вас тоже библиотека разрослась 😉
clck.ru/3UF4rp
У меня накопилось 22 000+ книг. Электронных. За 10 лет.
Разные форматы: PDF, EPUB, DOCX. Разные папки: "Книги", "Библиотека", "Архив_старое", "ToRead". И, конечно, переводы с разными названиями — одна и та же книга могла лежать в трёх местах с тремя именами.
Дубликатов оказалось больше тысячи. А руками проверять 22 тысячи файлов — это не вариант.
Написал на Python скрипт за 20 минут:
рекурсивно обходит все папки и подпапки;
считает MD5 каждого файла;
группирует одинаковые хеши;
выводит список дубликатов в текстовый файл.
Прогресс-бар, логи ошибок отдельно, консоль чистая. Красиво.
Итог:
22347 файлов
1128 групп дубликатов
Освобождено ~36 ГБ на диске
Всё за 20 минут работы скрипта
Кодинг — это когда ты не ищешь дубликаты руками, а пишешь инструмент, который сделает это за тебя.
Python + пара строчек кода = порядок в цифровом хаосе.
P.S. Скрипт оставлю в репозитории. Вдруг у вас тоже библиотека разрослась 😉
clck.ru/3UF4rp
Как я победил .DS_Store в папке с мануалами
Качаю мануалы — в папках появляются файлы
Решение: написал скрипт на Python — указываю папку, он проходит по всем вложенным папкам и удаляет эти файлы.
python
Запустил — и порядок. Работает за секунды.
Качаю мануалы — в папках появляются файлы
.DS_Store. Мусор, который создает macOS при каждом открытии папки через Finder. Сам по себе не вредный, но захламляет и путается под рукой.Решение: написал скрипт на Python — указываю папку, он проходит по всем вложенным папкам и удаляет эти файлы.
python
import os
TARGET_FOLDER = r"C:\Users\username\Downloads\Мануалы"
def delete_ds_store(root_dir):
for root, dirs, files in os.walk(root_dir):
if '.DS_Store' in files:
file_path = os.path.join(root, '.DS_Store')
os.remove(file_path)
print(f"Удален: {file_path}")
if __name__ == "__main__":
delete_ds_store(TARGET_FOLDER)
Запустил — и порядок. Работает за секунды.