logo

Python - List filer i en katalog

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



Filer i en katalog

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.

  1. Ved hjelp av OS-modul
  2. 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