Listar subdiretórios em Python
-
Listar subdiretórios com o módulo
glob
em Python -
Listar subdiretórios com a função
os.scandir()
em Python -
Listar subdiretórios com a função
os.walk()
em Python
Existem três métodos eficazes que você pode usar para listar todos os subdiretórios dentro de um diretório especificado em Python: a função glob.glob (), a função os.scandir () e a função os.walk (). Este tutorial demonstrará como você pode trabalhar com essas funções para listar subdiretórios em Python.
Listar subdiretórios com o módulo glob
em Python
O módulo glob
é usado para obter nomes de caminhos que correspondem a um padrão específico. Podemos usar a função glob()
dentro do módulo glob
do Python para listar todos os subdiretórios de um diretório principal especificado especificando /*/
no final do caminho do diretório. O seguinte trecho de programa nos mostra como listar todos os subdiretórios dentro do diretório principal usando o módulo glob
:
import os
from glob import glob
glob(os.getcwd() + "/*/", recursive=True)
Resultado:
['/content/sample_data/', '/content/subdirectory/']
Listamos todos os subdiretórios de nosso diretório de trabalho atual com o módulo glob
no código acima. A desvantagem desse método é que ele não exibe nenhum diretório oculto ou diretório onde o nome do diretório comece com um ponto .
; ele mostra apenas os subdiretórios imediatos.
Listar subdiretórios com a função os.scandir()
em Python
os
é um módulo embutido em Python que pode ser usado para muitas funções relacionadas ao sistema operacional, como armazenamento de arquivos. A função os.scandir()
pode ser usada para listar todos os subdiretórios de um diretório principal especificado. Esta função usa o caminho do diretório como um parâmetro de entrada e retorna um iterador que pode ser usado para iterar por meio de arquivos e diretórios dentro do caminho.
O seguinte trecho de código nos mostra como listar todos os subdiretórios dentro do diretório principal com a função os.scandir()
:
import os
[f.path for f in os.scandir(os.getcwd()) if f.is_dir()]
Resultado:
['/content/.config',
'/content/.ipynb_checkpoints',
'/content/sample_data',
'/content/subdirectory']
Listamos todos os subdiretórios de nosso diretório de trabalho atual com a função os.scandir()
no código acima. Este processo é uma melhoria em relação à abordagem anterior porque também lista os diretórios ocultos ou os diretórios onde o nome do diretório começa com um ponto .
. A única desvantagem desse método é que ele mostra apenas os diretórios filho imediatos do diretório pai principal. Ele não obtém os subsubdiretórios dentro do diretório principal.
Listar subdiretórios com a função os.walk()
em Python
A função os.walk()
é outro método que pode ser usado para listar todos os subdiretórios dentro de um único diretório principal em Python. A função os.walk()
pega o caminho do diretório principal como um parâmetro de entrada e retorna um conjunto de tuplas, onde o primeiro elemento de cada tupla é o caminho de um subdiretório dentro da árvore de diretórios. Isso inclui todos os subdiretórios e seus subsubdiretórios até que a árvore de diretórios termine.
A função os.walk()
também nos fornece os diretórios ocultos ou os diretórios onde o nome do diretório começa com um ponto .
. O seguinte trecho de código nos mostra como listar todos os subdiretórios dentro de um diretório principal com a função os.walk()
:
import os
[x[0] for x in os.walk(os.getcwd())]
Resultado:
['/content',
'/content/.config',
'/content/.config/logs',
'/content/.config/logs/2021.05.06',
'/content/.config/configurations',
'/content/.ipynb_checkpoints',
'/content/sample_data',
'/content/sample_data/.ipynb_checkpoints',
'/content/sample_data/subsubdirectory',
'/content/subdirectory']
Listamos todos os subdiretórios de nosso diretório de trabalho atual com a função os.scandir()
no programa acima. Como podemos ver, a saída mostra todos os diretórios dentro da árvore de diretórios. O resultado também inclui todos os diretórios ocultos.
Embora a abordagem os.walk()
nos mostre todos os subdiretórios e os subsubdiretórios com todos os diretórios ocultos, todos os métodos discutidos acima têm seus próprios casos de uso exclusivos e são úteis em diferentes cenários. A melhor abordagem entre as que discutimos depende do problema específico que você está tentando resolver.
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn