Trova i file per nome sul disco rigido con Python

Sommario

In questo tutorial vedremo come implementare un breve programma Python che si occupi della ricerca di file che contengono un certo nome, all'interno della directory che gli passiamo (se non gli passiamo una directory, cercherà dalla directory corrente). Vedremo che si tratta di un codice molto semplice da realizzare e comprendere.

NotaL'esempio che inserirò in questo tutorial lo eseguirò in Python 3.X.

Per prima cosa lascio il codice completo e di seguito verrà spiegato parte per parte:

 import sys, os search = directory "solvetic" = os.getcwd() total = 0 if (len (sys.argv)> 1): if (not os.path.isdir (sys.argv [1])): print (sys.argv [1], "non riconosciuto come directory") sys.exit (1) directory = sys.argv [1] per root, dir, files in os.walk (directory): per file in files: if ( cerca in file.lower ()): print (root + "\" + file) total + = 1 print ("In totale ci sono", totale, "file con", cerca) 
Iniziamo ora la spiegazione del codice, se sai già qualcosa su Python, sicuramente lo avrai già capito per la maggior parte.

Per eseguire questo programma utilizzeremo il modulo sistema operativo per interagire con il sistema operativo e il sistema per controllare l'ingresso dell'argomento e l'eventuale uscita senza bruschezze. Sono moduli che abbiamo già in Python, quindi non dobbiamo installare nient'altro.

 import sys, os 
Successivamente andremo a definire una variabile chiamata ricerca con la parola che andremo a cercare (potremmo riceverla come parametro, ma in questo caso, per l'esempio sarà risolutiva), un'altra chiamata directory che conterrà il percorso da dove inizieremo (per impostazione predefinita la directory corrente da cui eseguiremo il programma). E l'ultima variabile che vediamo in totale è tenere traccia dei file che stiamo trovando.
 search = directory "solvetic" = os.getcwd() total = 0 
Ora controlleremo se abbiamo ricevuto dei parametri e in tal caso controlliamo se ci hanno fornito una directory, se è vero, salviamo la directory nella variabile "directory", in caso contrario, quella variabile rimane la stessa, cioè, con la directory corrente.
 if (len (sys.argv)> 1): if (not os.path.isdir (sys.argv [1])): print (sys.argv [1], "non riconosciuto come directory") sys.exit ( 1) directory = sys.argv [1] 
Il prossimo passo è un ciclo, la funzione os.walk (directory) leggerà i nomi dei file in modo ricorsivo, cioè passerà attraverso i file e le directory dalla directory che gli passiamo. Quindi l'unica cosa che ci interessa in questo esempio è mostrare i file che contengono la parola solvetic, quindi esamineremo i file e controlleremo se hanno la parola cercata, per trovare anche i file che contengono la parola con qualche lettera maiuscola usiamo la funzione lower, che tutto ciò che fa è lasciare l'intera stringa in minuscolo. Poiché ci interessa vedere il percorso completo del file, concateniamo la variabile root con il file, poiché root restituisce la directory che abbiamo letto.
 per root, dir, file in os.walk (directory): per file in files: if (cerca in file.lower ()): print (root + "\" + file) total + = 1
Poco prima di terminare il programma, disegnerà sullo schermo una riga con il numero di file trovati con il nome di solvetic.
 print ("In totale ci sono", totale, "file con", cerca) 
Ora inserirò alcuni screenshot dell'esecuzione del programma, quindi l'esecuzione senza parametri, ovvero eseguirà la ricerca dalla directory corrente:

Quanto segue per cercare dal disco C in Windows:

E infine una cattura quando qualcosa che non è una directory viene passato come parametro:

E il tutorial è finito, se sei interessato ad approfondire il modulo, ecco un link alla documentazione ufficiale, è in inglese.

Ti è piaciuto e hai aiutato questo Tutorial?Puoi premiare l'autore premendo questo pulsante per dargli un punto positivo
wave wave wave wave wave