Pomoću Pythona pronađite datoteke po imenu na tvrdom disku

Sadržaj

U ovom vodiču ćemo vidjeti kako implementirati kratki program Python koji će se pobrinuti za traženje datoteka koje sadrže određeni naziv, unutar direktorija koji mu prosljeđujemo (ako mu ne proslijedimo direktorij, tražit će iz trenutnog direktorija). Vidjet ćemo da je to vrlo jednostavan kod za razumjeti i razumjeti.

BilješkaPrimjer koji ću staviti u ovaj vodič ću izvesti u Pythonu 3.X.

Prvo ostavljam cijeli kôd, a ispod će biti objašnjeno dio po dio:

 import sys, os search = "Riješen" direktorij = os.getcwd () ukupno = 0 if (len (sys.argv)> 1): if (ne os.path.isdir (sys.argv [1])): ispis (sys.argv [1], "nije prepoznat kao direktorij") sys.exit (1) direktorij = sys.argv [1] za root, dir, datoteke u os.walk (direktorij): za datoteku u datotekama: if ( pretraživanje u datoteci.lower ()): ispis (root + "\" + datoteka) ukupno + = 1 ispis ("Ukupno postoji", ukupno, "datoteke s", pretraživanje) 
Sada ćemo započeti objašnjenje koda, ako već znate nešto o Pythonu, zasigurno ste to većinom razumjeli.

Za provedbu ovog programa koristit ćemo os modul za interakciju s operativnim sustavom i sys kontrolirati unos argumenta i mogući izlaz bez naglih promjena. To su moduli koje već imamo u Pythonu pa ne moramo instalirati ništa drugo.

 import sys, os 
Zatim ćemo definirati varijablu koja se zove pretraživanje s riječju koju ćemo pretraživati ​​(mogli bismo je primiti kao parametar, ali u ovom slučaju, na primjer, to će biti rješavanje problema), drugi zvani direktorij koji će sadržavati put odakle ćemo početi (prema zadanim postavkama trenutni direktorij odakle pokrećemo program). I posljednja varijabla koju ukupno vidimo je da pratimo datoteke koje nalazimo.
 search = "Riješen" imenik = os.getcwd () ukupno = 0 
Sada ćemo provjeriti jesmo li primili neke parametre i ako je tako, provjeravamo jesu li nam dali imenik, ako je točno, spremamo imenik u varijablu "imenik", ako ne, ta varijabla ostaje ista, odnosno s trenutnim imenikom.
 if (len (sys.argv)> 1): if (ne os.path.isdir (sys.argv [1])): print (sys.argv [1], "nije prepoznat kao direktorij") sys.exit ( 1) direktorij = sys.argv [1] 
Sljedeći korak je petlja, funkcija os.walk (imenik) će rekurzivno čitati nazive datoteka, odnosno prolazit će kroz datoteke i direktorije iz direktorija koji mu prosljeđujemo. Tada nas jedino što nas u ovom primjeru zanima jest prikazati datoteke koje sadrže riječ riješiti, pa ćemo proći kroz datoteke i provjeriti imaju li traženu riječ, kako bismo pronašli i datoteke koje sadrže riječ s nekim velikim slovom mi koristimo donju funkciju, sve što čini je da cijeli niz ostavi malim slovima. Budući da nas zanima vidjeti potpuni put do datoteke, korijensku varijablu povezujemo s datotekom, budući da root vraća direktorij koji smo pročitali.
 za root, dir, datoteke u os.walk (direktorij): za datoteku u datotekama: if (traži u file.lower ()): ispis (root + "\" + datoteka) ukupno + = 1
Neposredno prije završetka programa, on će na ekranu iscrtati redak s brojem pronađenih datoteka s imenom rješenja.
 ispis ("Ukupno postoji", ukupno, "datoteke s", pretraživanje) 
Sada ću staviti neke snimke zaslona izvođenja programa, zatim izvršenje bez parametra, odnosno izvršit će pretraživanje iz trenutnog direktorija:

Za pretraživanje s diska C u sustavu Windows sljedeće:

I na kraju snimanje kada se kao parametar proslijedi nešto što nije direktorij:

I tutorial je završio, ako ste zainteresirani za daljnje istraživanje modula, evo veze do službene dokumentacije, na engleskom je.

Je li vam se svidio i pomogao ovaj vodič?Autor možete nagraditi pritiskom na ovaj gumb kako biste mu dali pozitivan bod
wave wave wave wave wave