Pular para o conteúdo

Como listar arquivos em um diretório usando Python

[

Como Obter uma Lista de Todos os Arquivos em um Diretório com Python

by Ian Currie 0 Comentários (intermediário)

Introdução

Obter uma lista de todos os arquivos e pastas em um diretório é um passo natural para muitas operações relacionadas a arquivos em Python. No entanto, ao explorar essa funcionalidade, você pode se surpreender com as várias maneiras de fazer isso.

Quando confrontado com muitas maneiras de fazer algo, geralmente indica que não há uma solução única para todos os problemas. Provavelmente, cada solução terá suas próprias vantagens e desvantagens. Esse é o caso quando se trata de obter uma lista do conteúdo de um diretório em Python.

Neste tutorial, você se concentrará nas técnicas mais gerais do módulo pathlib para listar itens em um diretório, mas também aprenderá um pouco sobre algumas ferramentas alternativas.

Usando o pathlib

Lidar com caminhos como strings pode parecer ok inicialmente, mas quando você começa a lidar com vários sistemas operacionais, as coisas ficam mais complicadas. Você também acaba com um monte de código relacionado à manipulação de strings, o que pode se afastar muito do que é um caminho de arquivo. As coisas podem ficar criptografadas muito rapidamente.

Isso não quer dizer que trabalhar com caminhos como strings não seja viável - afinal, os desenvolvedores se viraram bem sem o pathlib por muitos anos! O módulo pathlib apenas cuida de muitas coisas complicadas e permite que você se concentre na lógica principal do seu código.

Tudo começa com a criação de um objeto Path, que será diferente dependendo do seu sistema operacional (SO). No Windows, você receberá um objeto WindowsPath, enquanto o Linux e o macOS retornarão um PosixPath:

Windows:

import pathlib
desktop = pathlib.Path("C:/Users/RealPython/Desktop")
desktop

Linux + macOS:

import pathlib
desktop = pathlib.Path("/home/RealPython/Desktop")
desktop

Com esses objetos específicos para cada sistema operacional, você pode aproveitar os muitos métodos e propriedades disponíveis para trabalhar com caminhos de forma mais fácil e legível.

Obtendo uma Lista de Todos os Arquivos e Pastas em um Diretório

Agora que você tem seu objeto Path apontando para o diretório desejado, pode usar métodos como .iterdir() para obter uma lista de todos os arquivos e pastas dentro desse diretório. Por exemplo:

import pathlib
directory = pathlib.Path("/home/RealPython")
items = directory.iterdir()
for item in items:
print(item)

Esse código irá imprimir todos os arquivos e pastas dentro do diretório “/home/RealPython”.

Listando de Forma Recursiva com .rglob()

Se você precisar listar o conteúdo de um diretório de forma recursiva, ou seja, incluindo todos os arquivos e pastas dentro de subdiretórios, pode usar o método .rglob(). Por exemplo:

import pathlib
directory = pathlib.Path("/home/RealPython")
items = directory.rglob("*")
for item in items:
print(item)

Esse código irá imprimir todos os arquivos e pastas dentro do diretório “/home/RealPython” e em todos os subdiretórios.

Usando Padrões de Busca com o Método .glob()

O método .glob() permite que você especifique um padrão de busca para filtrar os itens de um diretório. Por exemplo, se você quiser listar apenas os arquivos de texto em um diretório, pode usar o seguinte código:

import pathlib
directory = pathlib.Path("/home/RealPython")
items = directory.glob("*.txt")
for item in items:
print(item)

Isso imprimirá apenas os arquivos com a extensão “.txt” dentro do diretório “/home/RealPython”.

Conclusão

Neste tutorial, você aprendeu como obter uma lista de todos os arquivos e pastas em um diretório usando o módulo pathlib do Python. Você viu como criar um objeto Path para representar um diretório, como iterar sobre os itens em um diretório e como usar métodos como .rglob() e .glob() para listar de forma recursiva ou com base em padrões de busca.

Lembre-se de que o módulo pathlib facilita muito a manipulação de caminhos de arquivo em Python, tornando o código mais legível e portável entre diferentes sistemas operacionais.

Esperamos que você tenha encontrado este tutorial útil e que agora se sinta mais confiante em obter listas de arquivos e pastas em diretórios usando Python. Experimente diferentes métodos e explore outras funcionalidades do módulo pathlib para aprimorar ainda mais seus conhecimentos.

Fique ligado para mais tutoriais Python detalhados e informativos!