Elenca sottodirectory in Python

Muhammad Maisam Abbas 30 gennaio 2023
  1. Elenca le sottodirectory con il modulo glob in Python
  2. Elenca le sottodirectory con la funzione os.scandir() in Python
  3. Elenca le sottodirectory con la funzione os.walk() in Python
Elenca sottodirectory in Python

Ci sono tre metodi efficaci che puoi usare per elencare tutte le sottodirectory all’interno di una directory specificata in Python: la funzione glob.glob(), la funzione os.scandir() e la funzione os.walk(). Questo tutorial dimostrerà come puoi lavorare con queste funzioni per elencare le sottodirectory in Python.

Elenca le sottodirectory con il modulo glob in Python

Il modulo glob viene utilizzato per ottenere nomi di percorso che corrispondono a un modello specifico. Possiamo usare la funzione glob() all’interno del modulo glob di Python per elencare tutte le sottodirectory di una directory principale specificata specificando /*/ alla fine del percorso della directory. Il seguente frammento di programma ci mostra come elencare tutte le sottodirectory all’interno della directory principale utilizzando il modulo glob:

import os
from glob import glob

glob(os.getcwd() + "/*/", recursive=True)

Produzione:

['/content/sample_data/', '/content/subdirectory/']

Abbiamo elencato tutte le sottodirectory della nostra attuale directory di lavoro con il modulo glob nel codice sopra. Lo svantaggio di questo metodo è che non visualizza alcuna directory nascosta o directory in cui il nome della directory inizia con un punto .; mostra solo le sottodirectory immediate.

Elenca le sottodirectory con la funzione os.scandir() in Python

os è un modulo integrato in Python che può essere utilizzato per molte funzioni relative al sistema operativo come l’archiviazione di file. La funzione os.scandir() può essere utilizzata per elencare tutte le sottodirectory di una directory principale specificata. Questa funzione accetta il percorso della directory come parametro di input e restituisce un iteratore che può essere utilizzato per scorrere file e directory all’interno del percorso.

Il seguente frammento di codice ci mostra come elencare tutte le sottodirectory all’interno della directory principale con la funzione os.scandir():

import os

[f.path for f in os.scandir(os.getcwd()) if f.is_dir()]

Produzione:

['/content/.config',
 '/content/.ipynb_checkpoints',
 '/content/sample_data',
 '/content/subdirectory']

Abbiamo elencato tutte le sottodirectory della nostra attuale directory di lavoro con la funzione os.scandir() nel codice sopra. Questo processo è un miglioramento rispetto all’approccio precedente perché elenca anche le directory nascoste o le directory in cui il nome della directory inizia con un punto .. L’unico svantaggio di questo metodo è che mostra solo le directory figlio immediate della directory padre principale. Non ottiene le sottodirectory all’interno della directory principale.

Elenca le sottodirectory con la funzione os.walk() in Python

La funzione os.walk() è un altro metodo che può essere utilizzato per elencare tutte le sottodirectory all’interno di una singola directory principale in Python. La funzione os.walk() prende il percorso della directory principale come parametro di input e restituisce un insieme di tuple, dove il primo elemento di ogni tupla è il percorso di una sottodirectory all’interno dell’albero delle directory. Ciò include tutte le sottodirectory e le relative sottodirectory fino alla fine dell’albero delle directory.

La funzione os.walk() ci fornisce anche le directory nascoste o le directory in cui il nome della directory inizia con un punto .. Il seguente frammento di codice ci mostra come elencare tutte le sottodirectory all’interno di una directory principale con la funzione os.walk():

import os

[x[0] for x in os.walk(os.getcwd())]

Produzione:

['/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']

Abbiamo elencato tutte le sottodirectory della nostra attuale directory di lavoro con la funzione os.scandir() nel programma sopra. Come possiamo vedere, l’output mostra tutte le directory all’interno dell’albero delle directory. Il risultato include anche tutte le directory nascoste.

Anche se l’approccio os.walk() ci mostra tutte le sottodirectory e le sottodirectory con tutte le directory nascoste, tutti i metodi discussi sopra hanno i loro casi d’uso unici e sono utili in diversi scenari. L’approccio migliore tra quelli che abbiamo discusso dipende dal problema specifico che stai cercando di risolvere.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

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

Articolo correlato - Python Directory