Atrodiet failus pēc nosaukuma cietajā diskā, izmantojot Python

Satura rādītājs

Šajā apmācībā mēs redzēsim kā ieviest īsu Python programmu, kas parūpēsies par to failu meklēšanu, kuros ir noteikts nosaukums, direktorijā, kuru mēs tam nododam (ja nenodosim tam direktoriju, tas meklēs no pašreizējā direktorija). Mēs redzēsim, ka tas ir ļoti vienkāršs kods, ko izveidot un saprast.

PiezīmePiemērs, ko es ievietošu šajā apmācībā, es darbosies programmā Python 3.X.

Vispirms es atstāju pilnu kodu un zemāk tas tiks paskaidrots pa daļām:

 importēt sys, os search = "solvetic" directory = os.getcwd () total = 0 if (len (sys.argv)> 1): if (not os.path.isdir (sys.argv [1])): print (sys.argv [1], "nav atpazīts kā direktorijs") sys.exit (1) direktorijs = sys.argv [1] saknei, dir, faili os.walk (direktorijā): failiem failos: if ( meklēt failā.zemāks ()): drukāt (sakne + "\" + fails) kopā + = 1 drukāt ("Kopā ir", kopā "faili ar", meklēšana) 
Tagad mēs sāksim izskaidrot kodu, ja jūs jau kaut ko zināt par Python, jūs noteikti to jau esat sapratuši.

Lai īstenotu šo programmu, mēs izmantosim os modulis mijiedarboties ar operētājsistēmu un sys kontrolēt argumenta ievadīšanu un iespējamo iziešanu bez pēkšņuma. Tie ir moduļi, kas mums jau ir Python, tāpēc mums nekas cits nav jāinstalē.

 importēt sistēmu, os 
Tālāk mēs definēsim mainīgo, ko sauc par meklēšanu, ar vārdu, kuru mēs meklēsim (mēs to varētu saņemt kā parametru, bet šajā gadījumā, piemēram, tas būs solvīts), vēl viens saukts direktorijs, kurā būs ceļš no kurienes mēs sāksim (pēc noklusējuma pašreizējais direktorijs, no kura mēs palaižam programmu). Un pēdējais mainīgais, ko mēs kopumā redzam, ir izsekot atrastajiem failiem.
 search = "solvetic" directory = os.getcwd () total = 0 
Tagad mēs pārbaudīsim, vai esam saņēmuši kādus parametrus, un, ja tā, tad pārbaudām, vai viņi ir devuši mums direktoriju, ja tā ir patiesa, mēs saglabājam direktoriju mainīgajā "direktorijā", ja nē, šis mainīgais paliek nemainīgs, tas ir, ar pašreizējo direktoriju.
 ja (len (sys.argv)> 1): ja (ne os.path.isdir (sys.argv [1]))): drukāt (sys.argv [1], "nav atpazīts kā direktorijs") sys.exit ( 1) direktorijs = sys.argv [1] 
Nākamais solis ir cilpa, funkcija os.walk (direktorija) rekursīvi nolasīs failu nosaukumus, tas ir, iet cauri failiem un direktorijiem no direktorija, ko mēs tam nodosim. Vienīgais, kas mūs interesē šajā piemērā, ir parādīt failus, kas satur vārdu solvetic, tāpēc mēs izskatīsim failus un pārbaudīsim, vai tajos ir meklētais vārds, lai atrastu arī failus, kuros ir vārds ar lielo burtu mēs izmantojam apakšējo funkciju, ka viss, kas tiek darīts, ir atstāt visu virkni ar mazajiem burtiem. Tā kā mēs esam ieinteresēti redzēt visu faila ceļu, mēs sakņojam saknes mainīgo ar failu, jo root atgriež izlasīto direktoriju.
 saknei, dir, failiem os.walk (direktorijā): failam failos: ja (meklēt failā.lower ()): drukāt (root + "\" + fails) kopā + = 1
Tieši pirms programmas beigām tā ekrānā uzzīmēs līniju ar atrasto failu skaitu ar solvetic nosaukumu.
 drukāt ("Kopumā ir", kopā, "faili ar", meklēšana) 
Tagad es ievietošu dažus programmas izpildes ekrānuzņēmumus, pēc tam izpildi bez parametra, tas ir, tā veiks meklēšanu no pašreizējā direktorija:

Lai meklētu no diska C sistēmā Windows, rīkojieties šādi:

Un visbeidzot uztveršana, kad kaut kas nav direktorijs tiek nodots kā parametrs:

Un apmācība ir beigusies, ja jūs interesē moduļa tālāka izpēte, šeit ir saite uz oficiālo dokumentāciju, tā ir angļu valodā.

Vai jums patika šī apmācība un palīdzējāt tai?Jūs varat apbalvot autoru, nospiežot šo pogu, lai sniegtu viņam pozitīvu punktu
wave wave wave wave wave