Raskite failus pagal pavadinimą kietajame diske naudodami „Python“

Turinys

Šioje pamokoje mes pamatysime kaip įdiegti trumpą „Python“ programą, kuri pasirūpins failų, kuriuose yra tam tikras pavadinimas, paieška, kataloge, kurį jam perduodame (jei neperduosime katalogo, jis ieškos iš dabartinio katalogo). Pamatysime, kad tai labai paprastas kodas, kurį reikia sukurti ir suprasti.

PastabaPavyzdys, kurį ketinu pateikti šioje pamokoje, bus paleistas naudojant „Python 3.X“.

Pirmiausia palieku visą kodą, o žemiau jis bus paaiškintas dalimis:

 importuoti sys, os paieška = "solvetic" katalogas = os.getcwd () total = 0 if (len (sys.argv)> 1): if (not os.path.isdir (sys.argv [1]))): print (sys.argv [1], „neatpažintas kaip katalogas“) sys.exit (1) katalogas = sys.argv [1], skirtas root, dir, failams os.walk (kataloge): failui failuose: if ( ieškoti faile. apatinis ()): spausdinti (šaknis + "\" + failas) iš viso + = 1 spausdinimas ("Iš viso yra", iš viso, "failai su", paieška) 
Dabar mes pradėsime kodo paaiškinimą, jei jau ką nors žinote apie „Python“, tai tikrai jau supratote.

Norėdami įgyvendinti šią programą, mes naudosime os modulis sąveikauti su operacine sistema ir sys kontroliuoti argumento įvedimą ir galimą išėjimą be staigumo. Jie yra moduliai, kuriuos jau turime „Python“, todėl mums nieko nereikia įdiegti.

 importuoti sys, os 
Toliau apibrėžiame kintamąjį, vadinamą paieška, su žodžiu, kurio ieškosime (galėtume jį gauti kaip parametrą, tačiau šiuo atveju, pavyzdžiui, jis bus solvetiškas), kitą pavadintą katalogą, kuriame bus kelias nuo ko ketiname pradėti (pagal numatytuosius nustatymus dabartinis katalogas, iš kurio vykdome programą). Ir paskutinis kintamasis, kurį iš viso matome, yra sekti rastus failus.
 search = "solvetic" katalogas = os.getcwd () total = 0 
Dabar mes patikrinsime, ar gavome kokių nors parametrų, ir jei taip, patikriname, ar jie mums davė katalogą, jei tai tiesa, išsaugome katalogą kintamajame „katalogas“, jei ne, tas kintamasis išlieka tas pats, tai yra su dabartiniu katalogu.
 if (len (sys.argv)> 1): if (not os.path.isdir (sys.argv [1]))): print (sys.argv [1], "neatpažintas kaip katalogas") sys.exit ( 1) katalogas = sys.argv [1] 
Kitas žingsnis yra ciklas, funkcija os.walk (katalogas) rekursyviai skaitys failų pavadinimus, tai yra, peržiūrės failus ir katalogus iš katalogo, kurį jam perduosime. Vienintelis dalykas, kuris mus domina šiame pavyzdyje, yra parodyti failus, kuriuose yra žodis solvetic, todėl peržiūrėsime failus ir patikrinsime, ar juose yra ieškomas žodis, taip pat surasime failus, kuriuose yra žodis su didžiosiomis raidėmis mes naudojame mažąją funkciją, kad viskas, ką ji daro, yra palikti visą eilutę mažosiomis raidėmis. Kadangi mums įdomu pamatyti visą failo kelią, šakninį kintamąjį sujungiame su failu, nes root grąžina perskaitytą katalogą.
 root, dir, failai os.walk (kataloge): faile esančiuose failuose: if (ieškoti failo.lower ()): print (root + "\" + file) total + = 1
Prieš baigiant programą, ji ekrane nudažys eilutę su rastų failų skaičiumi su solvetic pavadinimu.
 spausdinti („Iš viso yra“, iš viso, „failai su“, paieška) 
Dabar aš įdėsiu keletą programos vykdymo ekrano kopijų, tada vykdymą be parametro, tai yra, jis atliks paiešką iš dabartinio katalogo:

Norėdami ieškoti iš „Windows“ disko C, atlikite šiuos veiksmus:

Ir galiausiai fiksavimas, kai kažkas, kas nėra katalogas, perduodamas kaip parametras:

Pamoka baigta, jei jus domina tolesnis modulio tyrimas, čia yra nuoroda į oficialią dokumentaciją, ji yra anglų kalba.

Ar jums patiko ir padėjo ši pamoka?Galite apdovanoti autorių paspausdami šį mygtuką, kad suteiktumėte jam teigiamą tašką
wave wave wave wave wave