Noen ganger, mens du jobber med filer i Python, oppstår det et problem med hvordan du får alle filene i en katalog. I denne artikkelen vil vi dekke ulike metoder for hvordan liste alle filnavn i en katalog i Python.
Å utføre filoperasjoner er en må-ha ferdighet for programmerere. Å lære filoperasjoner ved hjelp av Python hjelper deg med å administrere filer, integrere filer med programmene dine, bygge programmer fra den virkelige verden, osv. Vi vil dekke det mest grunnleggende konseptet med å liste alle filer som er tilstede under en bestemt katalog.
Vi vil dekke to moduler og deres respektive funksjoner for denne opplæringen om å liste filnavn og detaljer i en katalog.
Hva er en katalog i Python?
En katalog, noen ganger kjent som en mappe, er en enhetsorganisasjonsstruktur i en datamaskins filsystem for lagring og lokalisering av filer eller flere mapper. Python støtter nå flere APIer for å liste kataloginnholdet. For eksempel kan vi bruke funksjonene Path.iterdir, os.scandir, os.walk, Path.rglob eller os.listdir.
Katalog i bruk: gfg
Hvordan liste filer i en katalog i Python
Det er flere måter å liste alle filene i en katalog på. I denne artikkelen vil vi diskutere modulene nedenfor og deres funksjoner for å hente listen over filer i en katalog. Vi vil dekke totalt 5 måter med eksempler for å sjekke listen over filer i en katalog.
- Ved hjelp av OS-modul
- Ved hjelp av glob modul
List filer i en katalog ved hjelp av OS-modulen i Python
Vi kan bruke disse 3 metodene OS-modul , for å få en liste over filer i en katalog.
- os.listdir() Metode
- os.walk() Metode
- os.scandir() Metode
Bruke os.listdir()-metoden for å få listen over filer
os.listdir() metoden henter listen over alle filer og kataloger i en spesifisert katalog. Som standard er det gjeldende katalog. Utover det første nivået av mapper, returnerer ikke os.listdir() noen filer eller mapper.
Syntaks : os.listdir(bane)
Parametere :
- Sti : Banen til katalogen
Returtype : returnerer en liste over alle filer og kataloger i den angitte banen
Eksempel 1: Få en liste over alle filene i en katalog
I dette eksemplet importeres os-modulen for å samhandle med operativsystemet. Listdir-funksjonen brukes til å få en liste over alle filer og kataloger i den angitte banen (C://Users//Vanshi//Desktop//gfg). Resultatet skrives deretter ut, og viser navnene på filer og kataloger som er tilstede på den angitte plasseringen.
Python3
# import OS module> import> os> # Get the list of all files and directories> path> => ' C://Users//Vanshi//Desktop//gfg '> dir_list> => os.listdir(path)> print> (> 'Files and directories in ''> , path,> '' :'> )> # prints all files> print> (dir_list)> |
normale former
>
>
Produksjon:
Eksempel 2: Få alle filene og ingen mapper
I dette eksemplet ber Python-programmet brukeren om en mappebane, og viser og skriver ut filene i den katalogen, ved å bruke os-modulen for kataloginteraksjon og filtrering av filer fra den innhentede listen.
Python3
import> os> print> (> 'Python Program to print list the files in a directory.'> )> Direc> => input> (r> 'Enter the path of the folder: '> )> print> (f> 'Files in the directory: {Direc}'> )> files> => os.listdir(Direc)> # Filtering only the files.> files> => [f> for> f> in> files> if> os.path.isfile(Direc> +> '/'> +> f)]> print> (> *> files, sep> => '
'> )> |
jdbc
>
>
Eksempel 3: Hent bare '.txt'-filer fra katalogen
I dette eksemplet bruker Python-skriptet os-modulen til å iterere gjennom filer i gjeldende katalog. Den skriver selektivt ut bare navnene på filer som slutter med .txt, og viser effektivt tekstfiler som finnes i katalogen.
Python3
# import OS> import> os> for> x> in> os.listdir():> > if> x.endswith(> '.txt'> ):> > # Prints only text file present in My Folder> > print> (x)> |
>
>
Produksjon:
Bruke os.walk()-metoden for å få tilgang til filer i et katalogtre
OS.walk() genererer filnavn i et katalogtre. Denne funksjonen returnerer en liste over filer i en trestruktur. Metoden går gjennom alle katalogene i et tre.
Syntaks: os.walk(top, topdown, onerror, followlinks )
Parametere:
- topp: Det er toppkatalogen du vil hente navnene på komponentfilene og mappene fra.
- topdown: Angir at kataloger skal skannes ovenfra og ned når satt til True. Hvis denne parameteren er False, vil kataloger bli undersøkt ovenfra og ned.
- en feil: Den gir en feilbehandler hvis det oppstår en feil
- følgekoblinger : hvis satt til True, besøker mapper referert av systemkoblinger
Komme tilbake: returnerer navnet på hver fil og mappe i en katalog og hvilken som helst av dens underkataloger.
Eksempel: Få bare «.txt»-filer i en katalog
I dette eksemplet bruker Python-skriptet os-modulen til å gå gjennom filer i den angitte katalogen (C://Users//Vanshi//Desktop//gfg) og dens underkataloger. Den identifiserer og skriver ut navnene på filer med filtypen .txt, og fyller listevariabelen med de ønskede tekstfilene.
Python3
røye til streng
# import OS module> import> os> # This is my path> path> => ' C://Users//Vanshi//Desktop//gfg '> # to store files in a list> list> => []> # dirs=directories> for> (root, dirs,> file> )> in> os.walk(path):> > for> f> in> file> :> > if> '.txt'> in> f:> > print> (f)> |
>
>
Produksjon:
Bruke os.scandir()-metoden for å liste filer i en katalog
os.scandir() er en effektiv versjon av os.listdir()-funksjonen. Den ble senere utgitt av Python og støttes for Python 3.5 og nyere.
Syntaks: os.scandir(bane)
Parameter:
- Sti- Banen til katalogen.
Returtype: returnerer en iterator av os.DirEntry-objektet.
Eksempel: List alle filer og kataloger i en katalog.
I dette eksemplet bruker Python-skriptet os-modulen til å liste filer og kataloger i den angitte banen (C://Users//Vanshi//Desktop//gfg). Den bruker os.scandir() for å få en iterator av os.DirEntry-objekter som representerer oppføringer i katalogen.
Python3
ulemper for internett
# import OS module> import> os> # This is my path> path> => ' C://Users//Vanshi//Desktop//gfg '> # Scan the directory and get> # an iterator of os.DirEntry objects> # corresponding to entries in it> # using os.scandir() method> obj> => os.scandir()> # List all files and directories in the specified path> print> (> 'Files and Directories in '% s':'> %> path)> for> entry> in> obj:> > if> entry.is_dir()> or> entry.is_file():> > print> (entry.name)> |
>
>
Produksjon:
List filer i en katalog ved å bruke glob-modulen i Python
De glob modul henter filer/banenavn som samsvarer med et spesifisert mønster. Nedenfor er måtene vi kan liste filer i en katalog ved å bruke glob-modulen:
- glob() Metode
- iglob() metode
Bruke glob()-metoden for å få alle filene i en katalog
Med glob , kan vi bruke jokertegn (*, ?, [ranges]) for å gjøre stihenting enklere og mer praktisk.
Syntaks: glob.glob(banenavn, *, rekursivt=False)
Parametere:
- banenavn : Banen til katalogen eller mønsteret som skal samsvare.
- tilbakevendende (Valgfritt): En boolsk parameter (standardverdi er satt til Falsk ) som indikerer om søket skal være rekursivt, dvs. om det skal inkludere underkataloger.
Returnerer:
- Liste over samsvarende filstier
Eksempel: Python-filmatching og utskrift ved hjelp av glob()-metoden
Python3
import> glob> # This is my path> path> => 'C:UsersVanshiDesktopgfg'> # Using '*' pattern> print> (> '
Named with wildcard *:'> )> for> files> in> glob.glob(path> +> '*'> ):> > print> (files)> # Using '?' pattern> print> (> '
Named with wildcard ?:'> )> for> files> in> glob.glob(path> +> '?.txt'> ):> > print> (files)> # Using [0-9] pattern> print> (> '
Named with wildcard ranges:'> )> for> files> in> glob.glob(path> +> '/*[0-9].*'> ):> > print> (files)> |
>
>
Produksjon:
10 ml er hvor mye
Bruke iglob()-metoden for å liste filer i en katalog
iglob() metoden kan brukes til å skrive ut filnavn rekursivt hvis den rekursive parameteren er satt til True. Dette brukes for store kataloger da det er mer effektivt enn glob()-metoden.
Syntaks: glob.iglob(banenavn, *, rekursivt=False)
Parameter:
- banenavn = Banen til katalogen.
- rekursiv (Valgfri)= En boolsk parameter (standardverdi er satt til Falsk ) som indikerer om søket skal være rekursivt, dvs. om det skal inkludere underkataloger.
Returnerer: Iterator av samsvarende filstier
Eksempel: Skriv ut stier som samsvarer med det angitte mønsteret i en katalog.
I dette eksemplet bruker Python-skriptet glob-modulen til å finne og skrive ut stier som samsvarer med det angitte mønsteret (C:UsersVanshiDesktopgfg***.txt). Den bruker glob.iglob() for å returnere en iterator, som deretter brukes til å skrive ut banene til alle tekstfiler som finnes i den angitte katalogen og dens underkataloger.
Python3
import> glob> # This is my path> path> => 'C:UsersVanshiDesktopgfg***.txt'> # It returns an iterator which will> # be printed simultaneously.> print> (> '
Using glob.iglob()'> )> # Prints all types of txt files present in a Path> for> file> in> glob.iglob(path, recursive> => True> ):> > print> (> file> )> |
>
>
Produksjon:
Dette er de 5 måtene du kan bruke for å få detaljer om filer og kataloger i en katalog. Python har gitt flere innebygde metoder som du kan bruke for å kjenne filene som finnes i en katalog. Denne opplæringen viste enkle metoder med eksempler for å forstå hvordan du får filoppføringer med os-modulen og glob-modulen.
Lignende lyder:
- List filer i katalogen med utvidelse
- List alle filer av en bestemt type i en katalog ved hjelp av Python
- Liste ut kataloger og filer i Python
- Få liste over filer i katalogen med størrelse
- Filhåndtering i Python