# File Finder Utility
Uma utilitário Python para encontrar e gerenciar arquivos baseado em padrões de nome e data de modificação.
## Descrição
Este pacote fornece funções para busca inteligente de arquivos em diretórios, permitindo localizar o arquivo mais recente que corresponda a um padrão específico no nome.
## Instalação
Clone o repositório
```bash
git clone https://github.com/phadias/file-finder-utility.git
cd file-finder-utility
```
Ou instale diretamente via pip
```bash
pip install file-finder-utility
```
## Exemplos Práticos
```bash
import os
from file_finder import check_last_file
# Encontrar o último backup
backup_path = check_last_file('/var/backups', 'system_backup')
# Encontrar o último relatório gerado
relatorio_path = check_last_file('./relatorios', 'vendas')
# Trabalhar com o arquivo retornado
if backup_path.exists():
print(f"Último backup: {backup_path.name}")
print(f"Tamanho: {backup_path.stat().st_size} bytes")
```
## API Reference
```
check_last_file(path_file: str, ref: str) -> Path
```
Encontra o arquivo mais recente em um diretório que contenha a referência especificada.
## Parâmetros:
- path_file (str): Caminho do diretório onde será realizada a busca
- ref (str): String de referência que deve estar contida no nome dos arquivos
## Retorna:
- Path: Objeto Path do arquivo mais recente que contém a referência
## Raises:
ValueError: Se nenhum arquivo for encontrado com a referência especificada
FileNotFoundError: Se o diretório especificado não existir
## Exemplos de Casos de Uso
1. Monitoramento de Backups
```bash
def verificar_ultimo_backup():
try:
ultimo_backup = check_last_file('/backups', 'database')
print(f"Último backup encontrado: {ultimo_backup}")
return ultimo_backup
except ValueError:
print("Nenhum backup encontrado!")
return None
```
2. Processamento de Relatórios
```bash
def processar_relatorio_mais_recente():
relatorio = check_last_file('./relatorios', 'vendas_diarias')
# Processar o relatório mais recente
with open(relatorio, 'r') as file:
dados = file.read()
# ... processamento dos dados
```
3. Limpeza de Arquivos Temporários
```bash
def manter_apenas_ultimo_arquivo():
arquivos = list(Path('./temp').glob('*log*'))
if len(arquivos) > 1:
mais_recente = check_last_file('./temp', 'log')
for arquivo in arquivos:
if arquivo != mais_recente:
arquivo.unlink() # Remove arquivos antigos
```
## Requisitos
- `Python 3.7+`
- `pathlib` (incluído na biblioteca padrão do Python)
- `os` (incluído na biblioteca padrão do Python)
## Estrutura do Projeto
```text
file-finder-utility/
└── file_finder/
│ ├── __init__.py
│ └── core.py
├── LICENSE
├── requirements.txt
├── setup.py
└── README.md
```
## Desenvolvimento
```bash
# Clonar e configurar
git clone https://github.com/seu-usuario/file-finder-utility.git
cd file-finder-utility
# Criar ambiente virtual
python -m venv venv
source venv/bin/activate # Linux/Mac
# ou
venv\Scripts\activate # Windows
# Instalar dependências de desenvolvimento
pip install -r requirements.txt
```
## Dicas de Uso
- A busca é case-sensitive (diferencia maiúsculas de minúsculas)
- Use **`*`** curingas no parâmetro `ref` para buscas mais flexíveis
- A função considera a data de modificação do arquivo, não a data de criação
## Changelog
### v0.0.1
- Funcionalidade inicial: check_last_file
- Suporte para busca por padrões em nomes de arquivos
- Retorno do arquivo mais recente baseado na data de modificação
## Licença
Este projeto está licenciado sob a Licença MIT - veja o arquivo
para detalhes:
[](LICENSE)
Raw data
{
"_id": null,
"home_page": null,
"name": "file-finder-utility",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": null,
"keywords": "file, finder, utility, search, filesystem, path, management",
"author": "Pablo Dias",
"author_email": "dias.pabloh@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/85/2d/fd7e662902da11e45000c76d416cc74a951f76d83eda119feba4a88736d0/file_finder_utility-0.0.1.tar.gz",
"platform": null,
"description": "# File Finder Utility\r\n\r\nUma utilit\u00e1rio Python para encontrar e gerenciar arquivos baseado em padr\u00f5es de nome e data de modifica\u00e7\u00e3o.\r\n\r\n## Descri\u00e7\u00e3o\r\n\r\nEste pacote fornece fun\u00e7\u00f5es para busca inteligente de arquivos em diret\u00f3rios, permitindo localizar o arquivo mais recente que corresponda a um padr\u00e3o espec\u00edfico no nome.\r\n\r\n## Instala\u00e7\u00e3o\r\n\r\nClone o reposit\u00f3rio\r\n```bash\r\ngit clone https://github.com/phadias/file-finder-utility.git\r\ncd file-finder-utility\r\n```\r\nOu instale diretamente via pip\r\n\r\n```bash\r\npip install file-finder-utility\r\n```\r\n\r\n## Exemplos Pr\u00e1ticos\r\n\r\n```bash\r\nimport os\r\nfrom file_finder import check_last_file\r\n\r\n# Encontrar o \u00faltimo backup\r\nbackup_path = check_last_file('/var/backups', 'system_backup')\r\n\r\n# Encontrar o \u00faltimo relat\u00f3rio gerado\r\nrelatorio_path = check_last_file('./relatorios', 'vendas')\r\n\r\n# Trabalhar com o arquivo retornado\r\nif backup_path.exists():\r\n print(f\"\u00daltimo backup: {backup_path.name}\")\r\n print(f\"Tamanho: {backup_path.stat().st_size} bytes\")\r\n\r\n```\r\n\r\n## API Reference\r\n```\r\ncheck_last_file(path_file: str, ref: str) -> Path\r\n```\r\n\r\nEncontra o arquivo mais recente em um diret\u00f3rio que contenha a refer\u00eancia especificada.\r\n\r\n## Par\u00e2metros:\r\n\r\n- path_file (str): Caminho do diret\u00f3rio onde ser\u00e1 realizada a busca\r\n\r\n- ref (str): String de refer\u00eancia que deve estar contida no nome dos arquivos\r\n\r\n## Retorna:\r\n\r\n- Path: Objeto Path do arquivo mais recente que cont\u00e9m a refer\u00eancia\r\n\r\n## Raises:\r\n\r\nValueError: Se nenhum arquivo for encontrado com a refer\u00eancia especificada\r\n\r\nFileNotFoundError: Se o diret\u00f3rio especificado n\u00e3o existir\r\n \r\n## Exemplos de Casos de Uso\r\n1. Monitoramento de Backups\r\n\r\n```bash\r\ndef verificar_ultimo_backup():\r\n try:\r\n ultimo_backup = check_last_file('/backups', 'database')\r\n print(f\"\u00daltimo backup encontrado: {ultimo_backup}\")\r\n return ultimo_backup\r\n except ValueError:\r\n print(\"Nenhum backup encontrado!\")\r\n return None\r\n```\r\n2. Processamento de Relat\u00f3rios\r\n```bash\r\n def processar_relatorio_mais_recente():\r\n relatorio = check_last_file('./relatorios', 'vendas_diarias')\r\n # Processar o relat\u00f3rio mais recente\r\n with open(relatorio, 'r') as file:\r\n dados = file.read()\r\n # ... processamento dos dados\r\n```\r\n3. Limpeza de Arquivos Tempor\u00e1rios\r\n```bash\r\ndef manter_apenas_ultimo_arquivo():\r\n arquivos = list(Path('./temp').glob('*log*'))\r\n if len(arquivos) > 1:\r\n mais_recente = check_last_file('./temp', 'log')\r\n for arquivo in arquivos:\r\n if arquivo != mais_recente:\r\n arquivo.unlink() # Remove arquivos antigos\r\n```\r\n\r\n## Requisitos\r\n- `Python 3.7+`\r\n- `pathlib` (inclu\u00eddo na biblioteca padr\u00e3o do Python)\r\n- `os` (inclu\u00eddo na biblioteca padr\u00e3o do Python)\r\n\r\n## Estrutura do Projeto\r\n```text\r\nfile-finder-utility/\r\n\u2514\u2500\u2500 file_finder/\r\n\u2502 \u251c\u2500\u2500 __init__.py\r\n\u2502 \u2514\u2500\u2500 core.py\r\n\u251c\u2500\u2500 LICENSE\r\n\u251c\u2500\u2500 requirements.txt\r\n\u251c\u2500\u2500 setup.py\r\n\u2514\u2500\u2500 README.md\r\n```\r\n## Desenvolvimento\r\n```bash\r\n# Clonar e configurar\r\ngit clone https://github.com/seu-usuario/file-finder-utility.git\r\ncd file-finder-utility\r\n\r\n# Criar ambiente virtual\r\npython -m venv venv\r\nsource venv/bin/activate # Linux/Mac\r\n# ou\r\nvenv\\Scripts\\activate # Windows\r\n\r\n# Instalar depend\u00eancias de desenvolvimento\r\npip install -r requirements.txt\r\n```\r\n\r\n## Dicas de Uso\r\n- A busca \u00e9 case-sensitive (diferencia mai\u00fasculas de min\u00fasculas)\r\n\r\n- Use **`*`** curingas no par\u00e2metro `ref` para buscas mais flex\u00edveis\r\n\r\n- A fun\u00e7\u00e3o considera a data de modifica\u00e7\u00e3o do arquivo, n\u00e3o a data de cria\u00e7\u00e3o\r\n\r\n## Changelog\r\n### v0.0.1\r\n- Funcionalidade inicial: check_last_file\r\n\r\n- Suporte para busca por padr\u00f5es em nomes de arquivos\r\n\r\n- Retorno do arquivo mais recente baseado na data de modifica\u00e7\u00e3o\r\n\r\n## Licen\u00e7a\r\n\r\nEste projeto est\u00e1 licenciado sob a Licen\u00e7a MIT - veja o arquivo \r\npara detalhes:\r\n[](LICENSE)\r\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Um pacote utilit\u00e1rio para localizar e gerenciar arquivos com base em padr\u00f5es de nome e data de modifica\u00e7\u00e3o",
"version": "0.0.1",
"project_urls": {
"Bug Reports": "https://github.com/phadias/file-finder-utility/issues",
"Documentation": "https://github.com/phadias/file-finder-utility/wiki",
"Source": "https://github.com/phadias/file-finder-utility"
},
"split_keywords": [
"file",
" finder",
" utility",
" search",
" filesystem",
" path",
" management"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "7a07d32cfd4e2269e0aa14e7524fd0c42f7f4d9e7c96ed02b9b35dd4054a7228",
"md5": "2a36b23f6a086aab1da6a1670c6168f4",
"sha256": "401abe1ca27c97b7ed9b7af417661b975e1a3aaa46897ee8893025588326b269"
},
"downloads": -1,
"filename": "file_finder_utility-0.0.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "2a36b23f6a086aab1da6a1670c6168f4",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 5577,
"upload_time": "2025-10-12T18:51:41",
"upload_time_iso_8601": "2025-10-12T18:51:41.243494Z",
"url": "https://files.pythonhosted.org/packages/7a/07/d32cfd4e2269e0aa14e7524fd0c42f7f4d9e7c96ed02b9b35dd4054a7228/file_finder_utility-0.0.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "852dfd7e662902da11e45000c76d416cc74a951f76d83eda119feba4a88736d0",
"md5": "acf08c76a7d1f902d7ff63771af06d64",
"sha256": "aa3b325036a88294396e4620a7cc6d9eee3637fc78e041e1bf2ba733cef1cf38"
},
"downloads": -1,
"filename": "file_finder_utility-0.0.1.tar.gz",
"has_sig": false,
"md5_digest": "acf08c76a7d1f902d7ff63771af06d64",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 5358,
"upload_time": "2025-10-12T18:51:42",
"upload_time_iso_8601": "2025-10-12T18:51:42.391422Z",
"url": "https://files.pythonhosted.org/packages/85/2d/fd7e662902da11e45000c76d416cc74a951f76d83eda119feba4a88736d0/file_finder_utility-0.0.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-12 18:51:42",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "phadias",
"github_project": "file-finder-utility",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "certifi",
"specs": [
[
"==",
"2025.10.5"
]
]
},
{
"name": "charset-normalizer",
"specs": [
[
"==",
"3.4.3"
]
]
},
{
"name": "docutils",
"specs": [
[
"==",
"0.22.2"
]
]
},
{
"name": "id",
"specs": [
[
"==",
"1.5.0"
]
]
},
{
"name": "idna",
"specs": [
[
"==",
"3.11"
]
]
},
{
"name": "jaraco.classes",
"specs": [
[
"==",
"3.4.0"
]
]
},
{
"name": "jaraco.context",
"specs": [
[
"==",
"6.0.1"
]
]
},
{
"name": "jaraco.functools",
"specs": [
[
"==",
"4.3.0"
]
]
},
{
"name": "keyring",
"specs": [
[
"==",
"25.6.0"
]
]
},
{
"name": "markdown-it-py",
"specs": [
[
"==",
"4.0.0"
]
]
},
{
"name": "mdurl",
"specs": [
[
"==",
"0.1.2"
]
]
},
{
"name": "more-itertools",
"specs": [
[
"==",
"10.8.0"
]
]
},
{
"name": "nh3",
"specs": [
[
"==",
"0.3.1"
]
]
},
{
"name": "packaging",
"specs": [
[
"==",
"25.0"
]
]
},
{
"name": "Pygments",
"specs": [
[
"==",
"2.19.2"
]
]
},
{
"name": "pywin32-ctypes",
"specs": [
[
"==",
"0.2.3"
]
]
},
{
"name": "readme_renderer",
"specs": [
[
"==",
"44.0"
]
]
},
{
"name": "requests",
"specs": [
[
"==",
"2.32.5"
]
]
},
{
"name": "requests-toolbelt",
"specs": [
[
"==",
"1.0.0"
]
]
},
{
"name": "rfc3986",
"specs": [
[
"==",
"2.0.0"
]
]
},
{
"name": "rich",
"specs": [
[
"==",
"14.2.0"
]
]
},
{
"name": "setuptools",
"specs": [
[
"==",
"80.9.0"
]
]
},
{
"name": "twine",
"specs": [
[
"==",
"6.2.0"
]
]
},
{
"name": "urllib3",
"specs": [
[
"==",
"2.5.0"
]
]
},
{
"name": "wheel",
"specs": [
[
"==",
"0.45.1"
]
]
}
],
"lcname": "file-finder-utility"
}