Scorri i file nella directory in Python

Muhammad Waiz Khan 30 gennaio 2023
  1. Esegui il bucle attraverso i file in una directory in Python usando il metodo os.listdir()
  2. Eseguire il bucle attraverso i file in una directory in Python utilizzando il metodo pathlib.path().glob()
  3. Esegui il bucle attraverso i file in una directory in Python usando il metodo os.walk()
  4. Esegui il bucle attraverso i file in una directory in Python usando il metodo iglob()
Scorri i file nella directory in Python

Questo tutorial spiegherà diversi modi per scorrere i file in una directory in Python. Dobbiamo cercare un file in una directory per implementare funzionalità come la condivisione di file, la visualizzazione di file o il caricamento di file per eseguire alcune azioni sui dati salvati in essa.

Supponiamo di avere un nome di file e di dover leggere i dati da quel file, abbiamo bisogno di un metodo per scorrere i file nella directory per trovare il file di cui abbiamo bisogno. I vari metodi usati per scorrere i file in una directory in Python sono spiegati di seguito.

Esegui il bucle attraverso i file in una directory in Python usando il metodo os.listdir()

Il metodo listdir() del modulo os prende il percorso della directory come input e restituisce una lista di tutti i file in quella directory. Poiché vogliamo trovare il file specifico nella directory, dovremo scorrere i nomi dei file per trovare il file richiesto. L’esempio di codice seguente mostra come trovare un file specifico iterando attraverso il file usando il metodo listdir() in Python.

import os

files = os.listdir("Desktop/myFolder")
myfile = "filename.txt"

for filename in files:
    if filename == myfile:
        continue

Eseguire il bucle attraverso i file in una directory in Python utilizzando il metodo pathlib.path().glob()

Il metodo path() del modulo pathlib prende la stringa del percorso della directory come input e restituisce l’lista di tutti i percorsi dei file nella directory e nelle sottodirectory.

Supponiamo che il file che vogliamo trovare sia il file .txt, possiamo ottenere i percorsi di tutti i file .txt usando il metodo path().glob(). L’esempio di codice seguente mostra come scorrere tutti i file .txt in una directory utilizzando il metodo path in Python.

from pathlib import Path

pathlist = Path("Desktop/myFolder").glob("**/*.txt")
myfile = "filename.txt"
for path in pathlist:
    if path.name == myfile:
        continue

Lo schema **/*.txt restituisce tutti i file con l’estensione txt nella cartella corrente e nelle sue sottocartelle. path.name restituisce solo il nome del file ma non il percorso completo.

Esegui il bucle attraverso i file in una directory in Python usando il metodo os.walk()

Il metodo walk() del modulo os prende anche la stringa del percorso della directory come input e restituisce il percorso della directory principale come una stringa, l’lista delle sottodirectory e l’lista di tutti i file nella directory corrente e le sue sottodirectory.

Per trovare il file con il nome filename.txt, possiamo prima ottenere tutti i file nella directory e quindi eseguire il bucle per ottenere il file desiderato. Nell’esempio di codice riportato di seguito viene illustrato come trovare un file eseguendo un bucle tra i file in una directory.

import os

myfile = "filename.txt"
for root, dirs, files in os.walk("Desktop/myFolder"):
    for file in files:
        if file == myfile:
            print(file)

Esegui il bucle attraverso i file in una directory in Python usando il metodo iglob()

Il metodo iglob() del modulo glob() prende come input il percorso della directory e l’estensione del file richiesto e restituisce il percorso di tutti i file con la stessa estensione. L’esempio di codice seguente mostra come scorrere i file in una directory e trovare il file richiesto in Python usando il metodo iglob().

import glob

for filepath in glob.iglob("drive/test/*.txt"):
    if filepath.endswith("/filename.txt"):
        print(filepath)

Articolo correlato - Python File