Pular para o conteúdo

Como listar todos os arquivos em um diretório usando Python?

[

Como listar todos os arquivos em um diretório com Python

Introdução

Quando estamos trabalhando com operações relacionadas a arquivos em Python, é comum que precisemos obter uma lista de todos os arquivos e pastas presentes em um diretório específico. Existem várias maneiras de fazer isso, e cada solução tem suas vantagens e desvantagens.

Neste tutorial, vamos nos concentrar nas técnicas mais versáteis disponíveis no módulo pathlib para listar os itens de um diretório. Além disso, vamos explorar algumas ferramentas alternativas.

Antes de começarmos, é importante mencionar que o pathlib foi introduzido no Python 3.4 como uma forma mais moderna e amigável de lidar com caminhos de arquivos. Anteriormente, utilizávamos o módulo os, o qual é eficiente, mas exige o tratamento de caminhos como strings. O pathlib simplifica bastante essa tarefa.

Usando o módulo pathlib

O primeiro passo é criar um objeto Path, que dependerá do sistema operacional utilizado. No Windows, utilizamos WindowsPath, enquanto no Linux e macOS utilizamos PosixPath. Por exemplo:

import pathlib
desktop = pathlib.Path("C:/Users/RealPython/Desktop") # Caminho para o diretório no Windows
desktop = pathlib.Path("/home/RealPython/Desktop") # Caminho para o diretório no Linux ou macOS

Com o objeto Path, temos acesso a diversos métodos e propriedades para manipular arquivos e pastas. Um método útil é o .iterdir(), que retorna um iterável contendo todos os itens presentes no diretório.

for item in desktop.iterdir():
print(item)

Esse código irá exibir o caminho completo de cada item (arquivo ou pasta) no diretório. Para listar apenas os arquivos, podemos utilizar o método .rglob() em conjunto com uma expressão regular. Por exemplo, para listar todos os arquivos .txt presentes no diretório e em suas subpastas:

for arquivo in desktop.rglob("*.txt"):
print(arquivo)

Na prática, o pathlib oferece uma forma simples e poderosa de obter uma lista de todos os arquivos em um diretório. Ele também é bastante flexível e permite filtrar os resultados de acordo com critérios específicos.

Usando a biblioteca glob do Python

Além do pathlib, outra forma de listar arquivos em um diretório é utilizando a biblioteca glob do Python. Essa biblioteca nos permite realizar buscas de arquivos usando padrões de expressões regulares.

import glob
arquivos = glob.glob("C:/Users/RealPython/Desktop/*.txt")
print(arquivos)

Nesse exemplo, estamos buscando todos os arquivos com extensão .txt no diretório especificado. A função glob.glob() retorna uma lista com os caminhos completos dos arquivos encontrados.

Conclusão

Neste artigo, você aprendeu diferentes maneiras de listar todos os arquivos em um diretório utilizando Python. O módulo pathlib é muito útil para esse tipo de tarefa, pois fornece métodos simples e flexíveis para manipular caminhos de arquivos. Além disso, a biblioteca glob oferece uma forma alternativa de realizar buscas por padrões de expressões regulares.

Experimente essas técnicas em seus projetos e adapte-as de acordo com suas necessidades. Lembre-se de que cada solução tem suas vantagens e desvantagens, então escolha aquela que melhor se adequar ao seu caso específico.