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.
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.