Como obter todos os arquivos de um diretório
-
os.listdir
para obter todos os arquivos em um diretório em Python -
os.walk
para obter todos os arquivos de um diretório em Python -
glob.glob
para obter todos os arquivos em um diretório em Python
Você poderia ter pelo menos 3 métodos para listar todos os arquivos de um diretório em Python, utilizando as funções Python os.listdir
, os.walk
e glob.glob
.
Abaixo está a presunção deste tutorial,
- Versão Python - Python 3
- O nome do caminho é
dirPath
e existe no sistema, portanto, não será necessário verificar a existência do diretório.
os.listdir
para obter todos os arquivos em um diretório em Python
O os.listdir
lista todos os arquivos e pastas do diretório, portanto precisa de código extra para filtrar os arquivos do resultado.
import os
dirPath = r"C:\git\DelftStack\content"
result = [f for f in os.listdir(dirPath) if os.path.isfile(os.path.join(dirPath, f))]
print(result)
O os.listdir
retorna apenas o caminho relativo dos arquivos ou pastas com referência ao dirPath
, e a função os.path.isfile
precisa do caminho completo para verificar se é ou não um arquivo, portanto precisamos utilizar o os.path.join
para combinar o dirPath
e os resultados do os.listdir
para obter o caminho completo dos arquivos ou caminhos.
os.walk
para obter todos os arquivos de um diretório em Python
os.walk
generates the file names in the given directory by traversing the tree top-down (per default) or bottom-up. It yields a 3-tuple (dirpath
, dirname
, filenames
) each time it walks to the directory in the tree (including top itself).
Todos os arquivos estão incluídos no tuple para o primeiro rendimento do os.walk
, portanto um modo pítonico é
import os
dirPath = r"C:\git\DelftStack\content"
result = next(os.walk(dirPath))[2]
print(result)
glob.glob
para obter todos os arquivos em um diretório em Python
O módulo glob
encontra todos os caminhos que correspondem ao padrão específico dado de acordo com as regras utilizadas na shell do Unix. O glob.glob
retorna a lista de nomes de caminhos que combinam com o padrão de nomes de caminhos dado. O caminho do arquivo tem o padrão de *.*
, que é o que será passado para glob.glob
como argumento de entrada.
import glob
dirPathPattern = r"C:\git\DelftStack\content\*.*"
result = glog.glob(dirPathPattern)
print(result)
O glob.glob
retorna o caminho completo dos arquivos combinados, como o C:\git\DelftStack\conten\about.rst
.
O resultado do método glob.glob
como mostrado aqui não poderia garantir que eles sejam apenas arquivos porque ele apenas verifica se o nome do caminho corresponde ao padrão, mas não verifica se é um arquivo ou um diretório.
Por exemplo, se um diretório tem o padrão de nome como test.test
, então este diretório também é incluído no resultado.
Se você precisa garantir que a saída contenha apenas arquivos, você precisa verificá-lo com a função os.path.isfile
.
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn FacebookArtigo relacionado - Python File
- Como Anexar Texto a um Arquivo em Python
- Como verificar se um arquivo existe em Python
- Como encontrar ficheiros com uma certa extensão apenas em Python
- Como ler linhas específicas a partir de um arquivo em Python
- Gravar linha por linha em um arquivo usando Python