Quando trabalhamos com ficheiros em Python, pode ser necessário obter ficheiros com base num padrão específico. O módulo glob em Python fornece funções para criar listas de ficheiros que correspondem a padrões dados, como caracteres universais (wildcards) e suporte para pesquisa recursiva com "". Aqui está como podemos importar o módulo e usá-lo:
import glob
txt_files = glob.glob('*.txt') # Obter todos os ficheiros .txt no diretório atual
print(txt_files, type(txt_files)) # Imprimir a lista de ficheiros .txt e o seu tipo
Suponha que existem três ficheiros de texto no diretório atual: file1.txt, file2.txt e file3.txt, a saída seria:
A função glob recebe um padrão como uma string e retorna uma lista de caminhos de ficheiros e diretórios que correspondem ao padrão.
No nosso exemplo anterior, usamos o caractere curinga *, que corresponde a zero ou mais caracteres. Assim, *.txt corresponde a todos os ficheiros que terminam com .txt.
Também podemos procurar ficheiros em subdiretórios de forma recursiva:
nested_files = glob.glob('**/*.txt', recursive=True) # Obter todos os ficheiros .txt recursivamente
print(nested_files, type(nested_files)) # Imprimir a lista de ficheiros .txt e o seu tipo
Assumindo que, além dos nossos ficheiros anteriores, temos também uma pasta folder1 no diretório atual contendo file4.txt e file5.txt, a saída seria:
Aqui, usamos ** no nosso padrão. Este símbolo num padrão de caminho representa todos os ficheiros e zero ou mais diretórios e subdiretórios. Também usamos o argumento recursive=True para permitir que a função procure em subdiretórios. Portanto, '**/*.txt', recursive=True obtém todos os ficheiros .txt do diretório atual e dos seus subdiretórios.
Esta é uma forma útil de lidar com caminhos de ficheiros e automatizar tarefas de manipulação de ficheiros em Python.
Desafio: Encontrar ficheiros .py
Como novo data scientist numa startup tecnológica, foi-lhe atribuída a tarefa de organizar todos os ficheiros Python no seu projeto atual. Devido à correria das últimas semanas, os ficheiros Python (.py) estão espalhados por todo o diretório atual. O seu trabalho é criar um programa em Python que use glob para listar todos os ficheiros Python (.py) presentes no diretório atual. No entanto, como está interessado apenas nos nomes dos ficheiros e não na sua localização, a saída deve ser apenas os nomes dos ficheiros sem o caminho do diretório.
O programa não precisa de receber qualquer input.
A saída do programa deve conter os nomes dos ficheiros Python no diretório atual, cada nome numa nova linha. Não inclua o caminho do diretório na saída. A saída deve estar ordenada alfabeticamente.