Como listar arquivos em um diretório usando Python?

neste tutorial, estamos a cobrir tudo o que precisa de saber sobre como listar ficheiros numa pasta usando Python.

Python é uma linguagem de uso geral, usada em uma variedade de campos como ciência de dados, aprendizagem de máquinas, e até mesmo no desenvolvimento da Web. Parece não haver Restrição na aplicação da linguagem Python.

portanto, parece que Python bastante trivial pode ser usado para listar arquivos e diretórios em qualquer sistema., O objetivo deste artigo é iluminar o leitor sobre as maneiras de listar arquivos em um sistema usando Python.

Listar Todos os Arquivos em um Diretório Usando Python

a finalidade de interagir com os diretórios em um sistema usando Python, os biblioteca é usada.

1. Usando a Biblioteca ‘ os ‘

o método que vamos exercer para o nosso motivo é listdir(). Como o nome sugere, é usado para listar itens em diretórios.,

# Importing the os libraryimport os# The path for listing itemspath = '.'# The list of itemsfiles = os.listdir(path)# Loop to print each filename separatelyfor filename in files:print(filename)

Saída:

game_file.pyhi-lo_pygame.pyJournaldevlist_files1.pyhi_lo_pygame.mp4test.pylist_files.pymy_program.cppa.outcut.cpp

os usuários do Linux podem facilmente combinar com a saída acima usando o padrão ls comando no terminal.

Itens de Lista usando o ‘ls’ comando

Como podemos ver os resultados de cada método de jogos.

2., Usando o ‘xpto’ biblioteca

glob é principalmente um nome de arquivo de correspondência de padrões biblioteca, mas ele pode ser usado para itens de lista no diretório atual:

Resultado:

game_file.pyhi-lo_pygame.pyJournaldevlist_files1.pyhi_lo_pygame.mp4test.pylist_files.pymy_program.cppa.outcut.cpp

O caractere curinga '*' é usado para corresponder a todos os itens do diretório atual. Uma vez que desejamos exibir os itens do diretório atual, precisamos desligar a natureza recursiva de glob() função.

3., Liste apenas os ficheiros na pasta actual

nos métodos acima, o código python estava a devolver todos os itens da pasta actual, independentemente da sua natureza. Podemos extrair apenas os arquivos usando a função path.isfile() dentro da bibliotecaos.

saída:

game_file.pyhi-lo_pygame.pylist_files1.pyhi_lo_pygame.mp4test.pylist_files.pymy_program.cppa.outcut.cpp

no excerto de código acima, a compreensão da lista é usada para filtrar apenas os itens que são realmente um ficheiro.,

Outra coisa importante a notar aqui é que, o código acima não funciona para outros diretórios como a variável 'f' não é um caminho absoluto, mas um caminho relativo ao diretório atual.

listar todos os arquivos em um diretório recursivamente

a fim de imprimir os arquivos dentro de um diretório e suas sub-pastas, precisamos atravessá-los recursivamente.

1. Usando a Biblioteca ‘ os ‘

com a ajuda do método walk(), podemos percorrer cada subdiretório dentro de um diretório um por um.,

saída:

Oos.walk() método simplesmente segue cada subdiretório e extrai os arquivos de uma maneira top-down por padrão. Há três iteradores usado para atravessar a saída de os.walk() função:

  • path – Esta variável contém o presente diretório a função é observar durante uma determinada iteração
  • folders – Esta variável é uma lista de diretórios dentro de 'path' diretório.,
  • files – a list of files inside the'path' directory.

o método join() é usado para concatenar o nome do ficheiro com a sua pasta-mãe, fornecendo-nos a localização relativa do ficheiro.

2. Usando a biblioteca ‘glob’

semelhante ao procedimento acima, glob pode visitar recursivamente cada diretório e extrair todos os itens e devolvê-los.,

Saída:

'**' símbolo usado juntamente com a variável de caminho de informa glob() função para combinar arquivos em qualquer subdiretório. O '*' diz à função para corresponder com todos os itens dentro de um diretório.

Uma vez que queremos extrair apenas os arquivos no diretório completo, filtramos os arquivos usando a função isfile() usada antes.

listar todas as sub-pastas dentro de um diretório

em vez de listar arquivos, podemos listar todas as sub-pastas presentes em um diretório específico.,

saída:

./Documents/Journaldev

a pequena diferença entre os ficheiros e directórios da lista é a selecção do iterator durante o processo de os.walk() função. Para os arquivos, Nós iterate sobre a variável de arquivos. Aqui, analisamos a variável de pastas.

listar arquivos em uma diretoria com localização absoluta

Uma vez que sabemos como listar arquivos em uma diretoria, em seguida, mostrar o caminho absoluto é um pedaço de bolo. O método abspath() fornece-nos o caminho absoluto para um ficheiro.,

Saída:

Uma coisa a notar aqui é que o abspath() deve ser fornecida com o caminho relativo do arquivo e esse é o propósito da tag join() função.

listar ficheiros numa pasta, combinando padrões

Existem várias formas de filtrar nomes de ficheiros correspondentes a um padrão em particular. Vamos passar por cada um deles um a um.

1. Usando a biblioteca’ fnmatch ‘

como o nome sugere, fnmatch é uma biblioteca de correspondência de padrões de ficheiros., Usando fnmatch com as nossas bibliotecas de extracção de nomes de ficheiros padrão, podemos filtrar os ficheiros correspondentes a um padrão específico.

Saída:

List of files containing "file" in them./Documents/game_file.py./Documents/list_files1.py./Documents/list_files.py

fnmatch() função tem dois parâmetros, o nome do arquivo seguido pelo padrão a ser correspondido. No código acima, estamos olhando para todos os arquivos contendo a palavra file neles.

2. Usando a biblioteca ‘glob’

como mencionamos anteriormente, glob's a finalidade primária é a correspondência de padrões de nomes de ficheiros.,

Saída:

./Documents/list_files1.py

O padrão acima de correspondência de expressão regular '**/**.*' pode ser explicado como:

3. Usando a biblioteca ‘pathlib’

pathlib segue uma forma orientada a objetos de interagir com o sistema de arquivos. A funçãorglob() dentro da biblioteca pode ser usada para extrair recursivamente a lista de arquivos através de um determinado objeto Caminho.

Esta lista de Ficheiros pode ser filtrada usando um padrão dentro da função rglob().,

Saída:

Documents/my_program.cppDocuments/Journaldev/mastermind.py

O código acima trecho é usado para listar todos os arquivos que começam com a letra 'm'.

listar arquivos em um diretório com uma extensão específica

listar arquivos com uma extensão específica em Python é algo semelhante à correspondência de padrões. Para este fim, precisamos criar um padrão com relação à Extensão do arquivo.

Saída:

fnmatch() função filtra os arquivos que terminam com '.py', que é python arquivos., Se queremos extrair arquivos com diferentes extensões, então temos que alterar esta parte do Código. Por exemplo, para obter apenas arquivos C++, '.cpp' deve ser usado.

isto resume as formas de obter a lista de ficheiros numa pasta que usa o Python.

conclusão

pode haver várias maneiras de resolver qualquer problema à mão, e o mais conveniente nem sempre é a resposta. Com relação a este artigo, um programador Python deve estar ciente de todas as maneiras que podemos listar arquivos em um diretório.

Share

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *