Expansão de padrões e iteração
Encontre arquivos com padrões glob
Expansão de padrões e iteração é uma aula grátis de Python Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Python Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Python Academy inclui 4 aulas no total.
Encontrando arquivos
O pathlib facilita listar o conteúdo de diretórios e procurar arquivos que correspondam a um padrão. Os principais métodos são iterdir, glob e rglob.
Configurando uma árvore de exemplo
Para explorar esses métodos, primeiro criamos um pequeno diretório de arquivos. Essa configuração usa apenas a biblioteca padrão.
from pathlib import Path
root = Path('sample')
root.mkdir(exist_ok=True)
(root / 'a.txt').write_text('1')
(root / 'b.txt').write_text('2')
(root / 'c.log').write_text('3')
print('created files')iterdir lista o conteúdo
iterdir() fornece cada entrada localizada diretamente dentro de um diretório, um Path por item.
from pathlib import Path
root = Path('sample')
for entry in sorted(root.iterdir()):
print(entry.name)glob com um padrão
glob() encontra entradas que correspondem a um padrão no estilo do shell. O caractere curinga * corresponde a qualquer sequência de caracteres.
from pathlib import Path
root = Path('sample')
for txt in sorted(root.glob('*.txt')):
print(txt.name)Curinga de um único caractere
O caractere curinga ? corresponde exatamente a um caractere, o que é útil para nomes de largura fixa.
from pathlib import Path
root = Path('sample')
for m in sorted(root.glob('?.txt')):
print(m.name)Intervalos de caracteres
Os colchetes correspondem a qualquer caractere de um conjunto ou intervalo, assim como na expansão de padrões do shell.
from pathlib import Path
root = Path('sample')
for m in sorted(root.glob('[ab].txt')):
print(m.name)glob recursivo com rglob
rglob() pesquisa um diretório e todos os seus subdiretórios. Ele equivale a glob('**/pattern').
from pathlib import Path
root = Path('sample')
(root / 'nested').mkdir(exist_ok=True)
(root / 'nested' / 'deep.txt').write_text('x')
for m in sorted(root.rglob('*.txt')):
print(m)Contando correspondências
Os resultados de glob são iteradores. Envolva um deles em list() para contar ou reutilizar as correspondências.
from pathlib import Path
root = Path('sample')
txts = list(root.rglob('*.txt'))
print('found', len(txts), 'text files')Filtrando durante a iteração
Combine a expansão de padrões com as verificações is_file ou is_dir para filtrar os resultados com precisão.
from pathlib import Path
root = Path('sample')
files = [p for p in root.iterdir() if p.is_file()]
for f in sorted(files):
print(f.name)Processando os arquivos encontrados
Depois de obter as correspondências, você pode ler cada arquivo. Aqui, somamos o conteúdo de todos os arquivos de texto da árvore.
from pathlib import Path
root = Path('sample')
total = 0
for p in root.rglob('*.txt'):
text = p.read_text().strip()
if text.isdigit():
total += int(text)
print('total:', total)Ordenando os resultados de glob
Glob não garante uma ordem específica. Envolva os resultados em sorted() quando precisar de uma saída determinística, por exemplo, ao criar um relatório.
from pathlib import Path
root = Path('sample')
for p in sorted(root.glob('*'), key=lambda x: x.name):
print(p.name)Verificação rápida
Qual é a diferença entre glob e rglob?
Recapitulação
Você aprendeu a encontrar arquivos com padrões glob.
iterdirlista o conteúdo direto.globencontra correspondências para um padrão (*,?,[...]).rglobpesquisa recursivamente.- Combine a expansão de padrões com os filtros
is_file/is_dire leia as correspondências.
Perguntas Frequentes
A aula “Expansão de padrões e iteração” é grátis?
Sim — o texto completo de “Expansão de padrões e iteração” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Python Academy, atualize para CoddyKit PRO. O curso de Python Academy inclui 4 aulas no total.
O que vou aprender em “Expansão de padrões e iteração”?
Encontre arquivos com padrões glob Você pratica Python Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Python Academy?
Nenhuma experiência prévia é necessária. Python Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.
Quanto tempo leva a aula “Expansão de padrões e iteração”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Python Academy?
Sim. Cada aula de Python Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- O objeto Path
- Leitura e escrita de arquivos
- Expansão de padrões e iteração
- Manipulação de caminhos