Projeto que implementa um simulador de algoritmo de indexação de documentos em Python. O sistema permite anexar arquivos de texto no formato TXT e realizar buscas por termos nesses documentos, retornando em quais linhas cada palavra aparece. O foco está no uso de estruturas de dados lineares para organizar a leitura e a consulta dos arquivos.
- Fila de arquivos: implementação manual de uma fila FIFO para armazenar os arquivos que serão processados na ordem em que foram adicionados.
- Importação de arquivos TXT: leitura de arquivos de texto linha a linha, com validação de extensão e tratamento de erros quando o arquivo não é encontrado.
- Metadados dos documentos: exibição de informações como nome do arquivo, quantidade de linhas e conteúdo bruto armazenado em memória.
- Remoção de arquivos da fila: remoção do primeiro arquivo processado, com mensagens informativas sobre sucessos ou tentativas em filas vazias.
- Busca de palavras: função que verifica se uma palavra existe nos arquivos carregados e retorna em quais linhas ela aparece, de forma case insensitive.
- Busca detalhada: variação da busca que também retorna o conteúdo das linhas onde a palavra foi encontrada, facilitando a análise do contexto.
Projeto sem demonstração visual. Apenas linha de comando.
- Python: Linguagem principal utilizada para implementar as estruturas de dados e o algoritmo de indexação de documentos.
- Pytest: Framework de testes utilizado para validar o comportamento das filas, buscas e funções de gerenciamento de arquivos.
- Flake: Ferramenta de linting para garantir qualidade de código e padronização de estilo em Python.
-
pip: Gerenciador de pacotes para instalação de dependências, junto com ambiente virtual
venvpara isolamento do ambiente de desenvolvimento.
A estrutura do projeto é organizada da seguinte forma:
/
├── statics/
│ ├── arquivo_teste.txt
│ ├── novo_paradigma_globalizado.txt
│ └── novo_paradigma_globalizado-min.txt
├── tests/
│ └── __init__.py
├── ting_file_management/
│ ├── file_management.py
│ └── file_process.py
├── ting_word_searches/
│ └── word_search.py
├── dev-requirements.txt
├── requirements.txt
├── pyproject.toml
├── setup.cfg
├── setup.py
└── README.md
Willian Gonçalves | LinkedIn | Github | Portfólio | Email
Projeto desenvolvido no curso de Ciência da Computação da Trybe como parte do curso de desenvolvimento full stack.
English Version
Project that implements a simple document indexing algorithm in Python. The program loads TXT files into a queue and provides search functions that return in which lines a given word appears. The main goal is to practice data structures such as queues, stacks and linked lists.
- File Queue: manual implementation of a FIFO queue to store files to be processed in the order they were added.
- TXT File Import: reading text files line by line, with extension validation and error handling when the file is not found.
- Document Metadata: display of information such as file name, number of lines, and raw content stored in memory.
- File Removal from Queue: removal of the first processed file, with informative messages about successes or attempts on empty queues.
- Word Search: function that checks if a word exists in the loaded files and returns in which lines it appears, case insensitive.
- Detailed Search: variation of the search that also returns the content of the lines where the word was found, facilitating context analysis.
No visual demonstration. Command line only.
- Python: Main language used to implement data structures and the document indexing algorithm.
- Pytest: Testing framework used to validate the behavior of queues, searches, and file management functions.
- Flake: Linting tool to ensure code quality and style standardization in Python.
-
pip: Package manager for installing dependencies, along with the
venvvirtual environment for development environment isolation.
The project structure is organized as follows:
/
├── statics/
│ ├── arquivo_teste.txt
│ ├── novo_paradigma_globalizado.txt
│ └── novo_paradigma_globalizado-min.txt
├── tests/
│ └── __init__.py
├── ting_file_management/
│ ├── file_management.py
│ └── file_process.py
├── ting_word_searches/
│ └── word_search.py
├── dev-requirements.txt
├── requirements.txt
├── pyproject.toml
├── setup.cfg
├── setup.py
└── README.md
Willian Gonçalves | LinkedIn | Github | Portfolio | Email
Project developed at Trybe as part of the Computer Science curriculum.