Como usar o módulo glob do Python para encontrar arquivos por padrão

O módulo glob em Python é uma ferramenta poderosa para encontrar arquivos e diretórios que correspondem a um padrão especificado. É particularmente útil quando você precisa procurar por arquivos com extensões ou nomes específicos em um diretório. Este artigo o guiará pelo uso do módulo glob para localizar arquivos de forma eficiente.

Introdução ao módulo glob

O módulo glob fornece uma maneira de listar arquivos e diretórios usando curingas no estilo shell do Unix. Isso é útil para tarefas como pesquisas de arquivos, processamento em lote e muito mais. O módulo inclui funções que permitem que você combine nomes de arquivos com padrões, facilitando o gerenciamento de arquivos.

Uso básico de glob

Para usar o módulo glob, você precisará importá-lo e então usar a função glob.glob() para encontrar arquivos que correspondem a um padrão. Os padrões que você usa podem incluir curingas como * (corresponde a qualquer número de caracteres) e ? (corresponde a um único caractere).

Exemplos

Encontrando arquivos com uma extensão específica

Por exemplo, para encontrar todos os arquivos com a extensão .txt em um diretório, você pode usar:

import glob

# Find all .txt files in the current directory
txt_files = glob.glob('*.txt')
print(txt_files)

Encontrando arquivos em um subdiretório

Para encontrar todos os arquivos com uma extensão específica em um subdiretório, especifique o subdiretório no padrão:

import glob

# Find all .jpg files in the 'images' subdirectory
jpg_files = glob.glob('images/*.jpg')
print(jpg_files)

Usando curingas

Os curingas podem ajudar você a encontrar uma gama maior de arquivos. Por exemplo, para encontrar todos os arquivos de texto que começam com "report":

import glob

# Find all files starting with 'report' and ending with .txt
report_files = glob.glob('report*.txt')
print(report_files)

Encontrando arquivos com várias extensões

Você também pode usar glob para encontrar arquivos com várias extensões usando um padrão que inclui várias correspondências de curingas:

import glob

# Find all .txt and .md files
files = glob.glob('*.txt') + glob.glob('*.md')
print(files)

Uso avançado

Além de padrões simples, o módulo glob suporta padrões mais complexos. Por exemplo, você pode usar padrões como ** para pesquisar diretórios recursivamente.

Pesquisa recursiva

Para pesquisar arquivos recursivamente em todos os subdiretórios, use o padrão ** junto com o argumento recursive=True:

import glob

# Find all .py files in the current directory and subdirectories
py_files = glob.glob('**/*.py', recursive=True)
print(py_files)

Conclusão

O módulo glob é uma ferramenta essencial para gerenciar arquivos em Python, permitindo que você pesquise arquivos usando padrões com facilidade. Não importa se você está trabalhando com tipos de arquivo específicos, pesquisando em diretórios ou realizando pesquisas complexas, glob fornece uma solução simples e eficaz.