I denne tutorial, vi dækker alt, hvad du behøver at vide om, hvordan liste over filer i en mappe ved hjælp af Python.
Python er et generelt sprog, der bruges inden for forskellige områder som datavidenskab, maskinlæring og endda i .ebudvikling. Der synes ikke at være nogen begrænsning i anvendelsen af Python sprog.
derfor synes det ganske trivielt Python kan bruges til at liste Filer og mapper i ethvert system., Formålet med denne artikel er at belyse læseren om måder at liste filer i et system ved hjælp af Python.
en Liste over Alle Filer i en Mappe ved Hjælp af Python
med henblik på at interagere med mapper i et system, der bruger Python os
bibliotek er brugt.
1. Brug af ‘ os ‘ – biblioteket
den metode, vi skal udøve for vores motiv, er listdir(). Som navnet antyder, bruges det til at liste elementer i mapper.,
# Importing the os libraryimport os# The path for listing itemspath = '.'# The list of itemsfiles = os.listdir(path)# Loop to print each filename separatelyfor filename in files:print(filename)
Output:
game_file.pyhi-lo_pygame.pyJournaldevlist_files1.pyhi_lo_pygame.mp4test.pylist_files.pymy_program.cppa.outcut.cpp
Linux-brugere kan nemt matcher ovenstående output ved hjælp af de standard ls
kommando på terminalen.
Som vi kan se resultaterne af hver metode passer.
2., Ved hjælp af den ‘glob’ bibliotek
glob
er for det meste et filnavn mønstertilpasning bibliotek, men det kan bruges til at liste punkter i den aktuelle mappe ved at:
Output:
game_file.pyhi-lo_pygame.pyJournaldevlist_files1.pyhi_lo_pygame.mp4test.pylist_files.pymy_program.cppa.outcut.cpp
jokertegnet '*'
bruges til at matche alle elementerne i det aktuelle directory. Da vi ønsker at vise elementerne i den aktuelle mappe, skal vi slukke for den rekursive karakter af glob()
funktion.
3., Angiv kun filer i den aktuelle mappe
i ovenstående metoder returnerede python-koden alle elementerne i den aktuelle mappe uanset deres art. Vi kan kun udpakke filerne ved hjælp af funktionen path.isfile()
inde i os
bibliotek.
Output:
game_file.pyhi-lo_pygame.pylist_files1.pyhi_lo_pygame.mp4test.pylist_files.pymy_program.cppa.outcut.cpp
i ovenstående kodestykke bruges Listeforståelse til kun at filtrere de elementer, der faktisk er en fil.,en anden vigtig ting at bemærke her er, at ovenstående kode ikke fungerer for andre mapper, da variablen 'f'
ikke er en absolut sti, men en relativ sti til den aktuelle mappe.
liste alle filer i en mappe rekursivt
for at udskrive filerne i en mappe og dens undermapper, er vi nødt til at krydse dem rekursivt.
1. Ved hjælp af’ os ‘ – biblioteket
Ved hjælp af walk()
– metoden kan vi krydse hver undermappe i en mappe en efter en.,
Output:
os.walk()
-metoden følger simpelthen hver undermappe og udtrækker filerne på en top-do .n måde som standard. Der er tre iteratorer, der anvendes til at gå gennem produktionen af os.walk()
funktion:
-
path
– Denne variabel indeholder den aktuelle mappe, funktionen er at observere i løbet af en bestemt iteration -
folders
– Denne variabel er en liste over mapper inde i'path'
bibliotek., -
files
– en liste over filer inde i'path'
bibliotek.
join()
– metoden bruges til at sammenkæde filnavnet med dets overordnede mappe, hvilket giver os den relative sti til filen.
2. Ved hjælp af’ glob ‘ – biblioteket
i lighed med ovenstående procedure kan glob
rekursivt besøge hvert bibliotek og udtrække alle elementer og returnere dem.,
Output:
'**'
symbolet, der bruges sammen med sti-variablen, fortæller funktionenglob()
til at matche filer i en hvilken som helst undermappe. '*'
fortæller funktionen til at matche alle elementerne i en mappe.
da vi kun ønsker at udpakke filerne i den komplette mappe, filtrerer vi filerne ud ved hjælp af funktionen isfile()
, der blev brugt før.
liste alle undermapper i en mappe
i stedet for at liste filer, kan vi liste alle undermapper, der findes i en bestemt mappe.,
Output:
./Documents/Journaldev
Den mindre forskel mellem notering filer og mapper er det udvalg af iterator i løbet af processen med os.walk()
funktion. For filer gentager vi over filvariablen. Her løber vi over mapperne variabel.
liste Filer i en mappe med absolut sti
Når vi ved, hvordan man lister filer i en mappe, er det et stykke kage at vise den absolutte sti. Metoden abspath()
giver os den absolutte sti til en fil.,
Output:
En ting at bemærke her er, at abspath()
skal være forsynet med den relative sti til filen, og det er formålet med join()
funktion.
liste Filer i en mappe ved at matche mønstre
Der er flere måder at filtrere filnavne, der matcher et bestemt mønster. Lad os gennemgå hver af dem en efter en.
1. Brug af’ fnmatch ‘ – biblioteket
som navnet antyder, fnmatch
er et filnavn mønster matchende bibliotek., Brug fnmatch
med vores standard filnavn udvinding biblioteker, kan vi filtrere de filer, der matcher et bestemt mønster.
Output:
List of files containing "file" in them./Documents/game_file.py./Documents/list_files1.py./Documents/list_files.py
fnmatch()
funktionen tager to parametre, er det filnavn, efterfulgt af det mønster, der skal matches. I ovenstående kode ser vi på alle de filer, der indeholder ordet file
i dem.
2. Brug af’ glob ‘ – biblioteket
som vi nævnte før, glob's
primært formål er filnavn mønster matching.,
Output:
./Documents/list_files1.py
ovenstående mønster matcher regulære udtryk '**/**.*'
kan forklares som:
3. Brug af’ pathlib ‘ – biblioteket
pathlib
følger en objektorienteret måde at interagere med filsystemet på. Funktionen rglob()
inde i biblioteket kan bruges til rekursivt at udtrække listen over filer gennem et bestemt Stiobjekt.
denne liste over filer kan filtreres ved hjælp af et mønster inden for funktionen rglob()
.,
Output:
Documents/my_program.cppDocuments/Journaldev/mastermind.py
ovenstående kodestykke bruges til at liste alle de filer, der starter med bogstavet 'm'
.
liste Filer i en mappe med en bestemt udvidelse
notering filer med en bestemt udvidelse i Python er noget der ligner mønster matching. Til dette formål skal vi oprette et mønster med hensyn til filtypenavnet.
Output:
fnmatch()
funktion filtrerer de filer, der slutter med '.py'
, der er python-filer., Hvis vi vil udpakke filer med forskellige udvidelser, er vi nødt til at ændre denne del af koden. For eksempel, for kun at hente C++ – filer, skal '.cpp'
bruges.
dette opsummerer måder at hente liste over filer i en mappe ved hjælp af Python.
konklusion
der kan være flere måder at løse ethvert problem ved hånden, og det mest bekvemme er ikke altid svaret. Med hensyn til denne artikel skal en Python-programmør være opmærksom på enhver måde, vi kan liste filer i en mappe.