I denne tutorial vil vi se hvordan man implementerer et kort Python -program, der tager sig af at søge efter filer, der indeholder et bestemt navn, i det bibliotek, som vi videregiver til det (hvis vi ikke sender det et bibliotek, søger det fra det aktuelle bibliotek). Vi vil se, at det er en meget enkel kode at lave og forstå.
BemærkEksemplet, som jeg skal lægge i denne tutorial, vil jeg køre i Python 3.X.
Først forlader jeg den komplette kode, og nedenfor vil den blive forklaret del for del:
import sys, os search = "solvetic" bibliotek = os.getcwd () total = 0 hvis (len (sys.argv)> 1): if (ikke os.path.isdir (sys.argv [1])): print (sys.argv [1], "ikke genkendt som bibliotek") sys.exit (1) bibliotek = sys.argv [1] for root, dir, filer i os.walk (bibliotek): for fil i filer: hvis ( søg i file.lower ()): print (root + "\" + fil) total + = 1 print ("I alt er der", total, "filer med", søgning)Nu skal vi begynde forklaringen på koden, hvis du allerede ved noget om Python, har du sikkert allerede forstået det for det meste.
For at udføre dette program vil vi bruge os modul at interagere med operativsystemet og sys at kontrollere indtastningen af argumentet og mulig afslutning uden brathed. De er moduler, som vi allerede har i Python, så vi behøver ikke installere andet.
import sys, osDernæst skal vi definere en variabel kaldet søgning med det ord, vi skal søge (vi kunne modtage det som en parameter, men i dette tilfælde vil det i eksemplet være solvetisk), et andet kaldet bibliotek, der vil indeholde stien hvorfra vi skal starte (som standard er det aktuelle bibliotek, hvorfra vi kører programmet). Og den sidste variabel, vi ser i alt, er at holde styr på de filer, vi finder.
search = "solvetic" bibliotek = os.getcwd () total = 0Nu skal vi kontrollere, om vi har modtaget parametre, og hvis det er tilfældet, kontrollerer vi, om de har givet os et bibliotek, hvis det er sandt, gemmer vi biblioteket i variablen "bibliotek", hvis ikke, forbliver variablen den samme, det vil sige med det aktuelle bibliotek.
if (len (sys.argv)> 1): if (ikke os.path.isdir (sys.argv [1])): print (sys.argv [1], "genkendes ikke som bibliotek") sys.exit ( 1) bibliotek = sys.argv [1]Det næste trin er en sløjfe, funktionen os.walk (bibliotek) læser filernes navne rekursivt, det vil sige, det vil gå gennem filerne og mapperne fra biblioteket, som vi sender til det. Så er det eneste, der interesserer os i dette eksempel, at vise de filer, der indeholder ordet solvetic, så vi vil gå gennem filerne og kontrollere, om de har det søgte ord, for også at finde de filer, der indeholder ordet med et stort bogstav vi bruger den nederste funktion, at alt det gør er at efterlade hele strengen i små bogstaver. Da vi er interesserede i at se den komplette sti til filen, sammenkæder vi rodvariablen med filen, da root returnerer det bibliotek, vi har læst.
for root, dir, filer i os.walk (bibliotek): for fil i filer: if (søg i file.lower ()): print (root + "\" + fil) i alt + = 1Lige før programmet afsluttes, maler det på skærmen en linje med antallet af fundne filer med navnet solvetic.
print ("I alt er der", i alt, "filer med", søg)Nu vil jeg lægge nogle skærmbilleder af programmets udførelse, derefter udførelsen uden parameter, det vil sige, at den vil søge fra det aktuelle bibliotek:
Følgende for at søge fra disk C i Windows:
Og endelig en optagelse, når noget, der ikke er et bibliotek, sendes som en parameter:
Og selvstudiet er slut, hvis du er interesseret i at undersøge modulet nærmere, her er et link til den officielle dokumentation, det er på engelsk.
Kan du lide og hjælpe denne vejledning?Du kan belønne forfatteren ved at trykke på denne knap for at give ham et positivt punkt