0Pricing
Python Academy · Aula

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.

  • iterdir lista o conteúdo direto.
  • glob encontra correspondências para um padrão (*, ?, [...]).
  • rglob pesquisa recursivamente.
  • Combine a expansão de padrões com os filtros is_file/is_dir e 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

  1. O objeto Path
  2. Leitura e escrita de arquivos
  3. Expansão de padrões e iteração
  4. Manipulação de caminhos
← Voltar para Python Academy