Первый шаг при чтении книги - естественно постараться вспомнить. Постараться пробежаться по названиям и аннотациям тоже не удалось - список большой, как названия и аннотации отражают содержимое книги - это отдельная песня. Следующий шаг - попросить помощи в группе поисков. Ну, так бывает, сюжет достаточно стандартный, подробностей много, итого - не срабатывает. Я уже почти решилась перечитывать библиотеку на читалке, как мне пришла идея поискать по ключевым словам в книге. Технически все просто - папку с прочитанными книгами с читалки перекинула на компьютер, сгенерировала с помощью ИИ скрипт, который должен был по списку слов проходить по книгам и проверять - есть ли в книге эти слова. И на-гора выдавать список книг где есть все эти слова. Скажу честно, - несколько книг, которые тоже были в списке "хочу перечитать, но не помню" я нашла. А по искомой... мне осталось просмотреть 560 книг. Но это в несколько раз меньше, если пересматривать все-все книги. Способ рабочий, рекомендую. Но на часто повторяющихся словах решение будет большим.
Промпт
Создать Python-скрипт, который ищет файлы книг форматов .fb2, .epub, .mobi во всех подкаталогах указанного пользователем каталога и определяет, какие из них содержат все слова из заданного списка, независимо от регистра и положения в тексте. 📌 Входные данные 1. Аргументы скрипта * path — путь к корневому каталогу, который необходимо рекурсивно просканировать. Путь пользователь указывает сам (в командной строке или внутри скрипта). * words — список искомых слов, например:
``` words = ["forest", "magic", "tower"]
```
Поддерживаемые форматы файлов
.fb2
.epub
.mobi
fb2.zip
📌 Требования к обработке файлов
Рекурсивный обход каталога Скрипт должен:
обходить все подкаталоги,
искать только файлы указанных форматов,
игнорировать остальные файлы.
Извлечение текста Для каждого типа файла:
открыть как XML,
извлечь текст из <body> (включая вложенные теги).
● EPUB
распаковать как ZIP,
взять все .html / .xhtml / .htm файлы,
удалить теги, оставить чистый текст.
● MOBI Один из вариантов:
использовать библиотеку mobi (если доступна),
либо fallback: попытаться конвертировать во временный .txt через calibre (если установлен). Текст привести к нижнему регистру.
Поиск слов Скрипт должен проверить что в файле присутствуют все слова из списка
регистр не учитывать,
слова не обязаны идти подряд
можно искать как подстроки (строгое вхождение).
📌 Выходные данные Основной результат:
Список путей к файлам, которые содержат все искомые слова.
📌 Минимальные требования к реализации
Использование только стандартной библиотеки Python + популярные открытые модули (lxml, BeautifulSoup, mobi, zipfile).
Работа под Linux\Windows.
Без необходимости предварительной ручной конвертации.
Как я книгу искала
Следующий шаг - попросить помощи в группе поисков. Ну, так бывает, сюжет достаточно стандартный, подробностей много, итого - не срабатывает.
Я уже почти решилась перечитывать библиотеку на читалке, как мне пришла идея поискать по ключевым словам в книге.
Технически все просто - папку с прочитанными книгами с читалки перекинула на компьютер, сгенерировала с помощью ИИ скрипт, который должен был по списку слов проходить по книгам и проверять - есть ли в книге эти слова. И на-гора выдавать список книг где есть все эти слова.
Скажу честно, - несколько книг, которые тоже были в списке "хочу перечитать, но не помню" я нашла. А по искомой... мне осталось просмотреть 560 книг. Но это в несколько раз меньше, если пересматривать все-все книги.
Способ рабочий, рекомендую. Но на часто повторяющихся словах решение будет большим.
Промпт