Um buscador de arquivos recursivo, ultra-eficiente em memória usando geradores Python.
Project description
Heter
Uma ferramenta Python leve e eficiente para busca de arquivos e diretórios. Utiliza Geradores (yield) para garantir que o consumo de memória RAM permaneça baixo, mesmo ao escanear milhões de arquivos.
✨ Funcionalidades
- Geradores Nativos: Processa um arquivo por vez sem carregar listas gigantes na memória, tornando-o mais eficiente possivel.
- Controle de Profundidade: Argumento
depthpara limitar a recursividade. - Filtros Flexíveis: Busca por arquivos, diretórios ou ambos, com suporte a padrões (Pattern matching).
- Dados Completos: Retorna dicionários com nome, tamanho (KB), datas de criação/modificação, seu caminho e tipo.
🚀 Como Usar:
Instalando a Biblioteca:
pip install Heter
Importando a Biblioteca
Pode importar a biblioteca.
import search
Parametros:
O search pode receber até 4 Parametros sendo apenas um deles obrigatorio e posicional:
- Path é o unico argumento é deve ser apresentado como uma String
search("C:/User/seuUsuario/seuCaminho")
-
typeSearch: é um parametro opcional que recebe uma string que defini quais tipos de arquivo serão buscados;
- Podendo ser 'dir' para diretorios/pastas:
search('C:/', typesearch='dir'): #seram buscados apenas pastas/diretorios no caminho 'C:/'
- Podendo ser 'file' para arquivos:
search('C:/', typesearch='file'): #seram buscados apenas arquivos nesse caso
[!WARNING] Se não for passado nenhum argumento no parametro typeSearch ele mostrara tudo encontrado:
search('C:/'): #sera buscado tudo que tem na pasta 'C:/'
[!WARNING] Mesmo se for passado um argumento que não existe
-
Pattern: é um parametro opcional que funciona como um filtro de nomes sobre o resultado da busca:
search('C:/', Pattern={'program', 'win', 'xbox'}): #sera buscado na pasta 'C:/' todos os arquivos e diretorios que tem 'program', 'win', 'xbox' no nome
[!WARNING] > Para passar valores no Pattern esses itens devem ser uma string dentro do set do Pattern. > ex: Pattern={'valor1', 'valor2', 'valor3'}
- Depth: é um parametro opcional que recebe um valor int que determina quantas subpastas serão buscadas tambem:
search('C:/', Depth=2): #toda pasta que ele achar no caminho que você passou ele ira abrir, e assim por diante de acordo com o valor do *depth*
[!TIP] Passar valores maiores no Depth tambem resultara em listas mais longas, mas o tempo de procura será o mesmo
🌊 Resultado Da Função:
- Retorno: A função retorna um gerador de dicionários. Cada dicionário representa um arquivo ou diretório, contendo as seguintes chaves:
| Chave | Descrição |
|---|---|
| name | Nome do arquivo ou pasta |
| size_kb | Tamanho convertido para Kilobytes |
| modification | Data de modificação (DD/MM/AAAA) |
| creation | Data de criação (DD/MM/AAAA) |
| full_path | Caminho absoluto no sistema |
| type_entry | Identifica se é 'file' ou 'directory' |
- 🧪 Testes Este projeto utiliza pytest. Para rodar os testes, no terminal:
pytest
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file heter-0.2.2.tar.gz.
File metadata
- Download URL: heter-0.2.2.tar.gz
- Upload date:
- Size: 4.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: Hatch/1.16.2 cpython/3.14.2 HTTPX/0.28.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
905fe1226688952a2f84bc610b89550fc9f32dac62b16e29d1943f253cf78949
|
|
| MD5 |
83119a9d3c7f5560c5f78673d1e7d765
|
|
| BLAKE2b-256 |
9b1dae1481d10690f7ddf5d382168e42a6d07efa8f55d46f566872d2988b468d
|
File details
Details for the file heter-0.2.2-py3-none-any.whl.
File metadata
- Download URL: heter-0.2.2-py3-none-any.whl
- Upload date:
- Size: 4.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: Hatch/1.16.2 cpython/3.14.2 HTTPX/0.28.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0b9d70b31a9b4dc7541609ef3b2867a7a81cd6cff8dc32e844388869b6b9c93a
|
|
| MD5 |
d935d6777c2c190f277e7a162dd106a3
|
|
| BLAKE2b-256 |
92faea21ddb5a0694654adf962c9c79182181dcc3a8b3b926cb26b36ed3e7142
|