Skip to main content

fast_search / flsr

flsr - Данная программа представляет собой консольную утилиту для индексации и поиска файлов. При индексации указанной директории, информация о каждом файле сохраняется в базе данных. Поиск осуществляется по имени файла в базе данных.

Установка

pip install flsr

Использование

Команды

Утилита поддерживает следующие команды:

  • index (i) - Индексация директории. Индексирует указанную директорию и сохраняет информацию о каждом файле в базу данных.
  • search (s) - Поиск файла в индексе по имени. Может использовать необязательный аргумент --type, чтобы фильтровать по типу файла.
  • list_index (l) - Выводит список всех индексов. Отображает информацию о всех доступных индексах.
  • delete (d) - Удаляет все индексы, созданные более указанного количества дней назад.

Аргументы

Утилита принимает следующие аргументы:

  • directory - Путь к директории, которую нужно проиндексировать. Пример использования: python -m flsr i /home/user/docs
  • query - Имя файла для поиска. Пример использования: python -m flsr s myfile.txt
  • days - Количество дней, после которых необходимо удалить индексы. Пример использования: python -m flsr d --days 30

Примеры

Индексация директории

Для индексации директории необходимо выполнить команду index (i) и указать путь к директории, которую нужно проиндексировать:

python -m flsr i /home/user/docs

Поиск файла

Для поиска файла в индексе необходимо выполнить команду search (s) и указать имя файла для поиска:

python -m flsr s myfile.txt

Также возможно выполнить поиск файлов по типу с помощью аргумента --type (расширения файла). Например, чтобы найти все файлы с расширением .pdf, нужно выполнить следующую команду:

python -m flsr s myfile.txt --type '.pdf;

Аргумент --type является необязательным. Если он не указан, то поиск будет осуществляться по всем файлам.

Вывод списка индексов

Для вывода списка всех индексов необходимо выполнить команду list_index (l):

python -m flsr l

Удаление старых индексов

В данном примере будут удалены все индексы, созданные более 30 дней назад:

python -m flsr d --days 30

Функции

create_table()

Функция создает таблицу fileindex в базе данных fileindex.sqlite3 с полями id, name, path, type, time_create. Поле id является первичным ключом и генерируется автоматически. Поле name хранит имя файла, path - полный путь к файлу, type - тип файла (расширение), time_create - время создания файла в формате timestamp.

index_files(root_dir: str, time_created: int)

Функция производит индексацию директории root_dir. Для каждого файла в директории и ее поддиректориях создается запись в таблице fileindex. Запись содержит информацию о имени файла, его пути, типе и времени создания (time_create). Время создания устанавливается переданным параметром time_created.

search_files(name_file_or_dir: str)

Функция осуществляет поиск файла в базе данных по его имени name_file_or_dir. Поиск производится с помощью оператора LIKE, что позволяет искать файлы и папки, в имени которых есть заданная строка. Функция возвращает список записей из таблицы fileindex, соответствующих запросу поиска. Каждая запись представляет собой кортеж из пяти элементов: id, name, path, type и time_create.

list_index()

Функция выводит список всех индексов, содержащихся в базе данных fileindex.sqlite3. Для каждого индекса выводится номер, дата создания, количество файлов и общий путь. Для вывода используется таблица в формате markdown.

delete_old_indexes(days: int) -> int

Функция удаляет все индексы, созданные более days дней назад из базы данных fileindex.sqlite3. Она принимает на вход параметр days - количество дней, после которых необходимо удалить индексы. Функция возвращает количество удаленных записей.

main()

Основная функция, которая выполняет соответствующую команду в зависимости от переданных аргументов командной строки. Функция парсит аргументы командной строки с помощью модуля argparse, и выполняет соответствующую команду (index, search, list_index) с помощью функций create_table(), index_files(), search_files() и list_index(). Вывод результатов осуществляется на консоль.

Заключение

Данный код представляет собой пример консольной утилиты для индексации и поиска файлов. Он может быть использован как основа для создания более сложных инструментов для работы с файловой системой.

Metadata

Release files for flsr 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for flsr 0.1.1
File Interpreter ABI Platform
flsr-0.1.1-py3-none-any.whl Python 3 none any Details

Release files / flsr-0.1.1-py3-none-any.whl

Download URL flsr-0.1.1-py3-none-any.whl
Size 7.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7e3b2a612d33db096a3dcc07b1082293dbb28b537339e851ef45ab7ba2bd0080
BLAKE2b-256 checksum
How to use checksums
8b9f7937089ca4c51928654ae98b491d4b7516beb8552259289763063037904d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/1.4.0 CPython/3.11.0rc1 Linux/5.15.0-67-generic

Release history Release notifications | RSS feed

This release

0.1.1 This release

1 release file

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page