Nogle gange, mens du arbejder med filer i Python, opstår der et problem med, hvordan man får alle filer i en mappe. I denne artikel vil vi dække forskellige metoder til hvordan man viser alle filnavne i en mappe i Python.
Udførelse af filoperationer er en skal-have færdighed for programmører. At lære filoperationer ved hjælp af Python hjælper med at administrere filer, integrere filer med dine programmer, bygge programmer fra den virkelige verden osv. Vi vil dække det mest grundlæggende koncept med at liste alle filer, der findes under en specifik mappe.
Vi vil dække to moduler og deres respektive funktioner til denne tutorial om at angive filnavne og detaljer i en mappe.
Hvad er en mappe i Python?
En mappe, nogle gange kendt som en mappe, er en enhedsorganisationsstruktur i en computers filsystem til lagring og lokalisering af filer eller flere mapper. Python understøtter nu flere API'er til at vise mappeindholdet. For eksempel kan vi bruge funktionerne Path.iterdir, os.scandir, os.walk, Path.rglob eller os.listdir.
Katalog i brug: gfg

Sådan vises filer i en mappe i Python
Der er flere måder at liste alle filerne i en mappe på. I denne artikel vil vi diskutere nedenstående moduler og deres funktioner til at hente listen over filer i en mappe. Vi vil dække i alt 5 måder med eksempler til at kontrollere listen over filer i en mappe.
- Ved brug af OS modul
- Ved brug af glob modul
Liste filer i en mappe ved hjælp af OS-modul i Python
Vi kan bruge disse 3 metoder OS modul , for at få en liste over filer i en mappe.
- os.listdir() Metode
- os.walk() Metode
- os.scandir() Metode
Bruger os.listdir() metoden til at få listen over filer
os.listdir() metode henter listen over alle filer og mapper i en specificeret mappe. Som standard er det den aktuelle mappe. Ud over det første niveau af mapper returnerer os.listdir() ingen filer eller mapper.
Syntaks : os.listdir(sti)
Parametre :
- Sti : Sti til biblioteket
Returtype : returnerer en liste over alle filer og mapper i den angivne sti
Eksempel 1: Få en liste over alle filer i en mappe
I dette eksempel importeres os-modulet for at interagere med operativsystemet. Listdir-funktionen bruges til at få en liste over alle filer og mapper i den angivne sti (C://Users//Vanshi//Desktop//gfg). Resultatet udskrives derefter og viser navnene på filer og mapper, der findes på den angivne placering.
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
>
>
Produktion:

Eksempel 2: Hent alle filerne og ingen mapper
I dette eksempel beder Python-programmet brugeren om en mappesti og viser og udskriver filerne i den mappe ved at bruge os-modulet til mappeinteraktion og filtrering af filer fra den opnåede liste.
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 kun '.txt'-filer fra mappen
I dette eksempel bruger Python-scriptet os-modulet til at iterere gennem filer i den aktuelle mappe. Den udskriver selektivt kun navnene på filer, der slutter med .txt, og viser effektivt tekstfiler, der findes i mappen.
Python3
# import OS> import> os> for> x>in> os.listdir():> >if> x.endswith(>'.txt'>):> ># Prints only text file present in My Folder> >print>(x)> |
>
>
Produktion:

Bruger os.walk()-metoden til at få adgang til filer i et mappetræ
OS.walk() genererer filnavne i et mappetræ. Denne funktion returnerer en liste over filer i en træstruktur. Metoden går gennem alle mapperne i et træ.
Syntaks: os.walk(top, topdown, onerror, followlinks )
Parametre:
- top: Det er den øverste mappe, hvorfra du vil hente navnene på komponentfilerne og mapperne.
- oppefra og ned: Angiver, at mapper skal scannes fra toppen og ned, når de er indstillet til Sand. Hvis denne parameter er falsk, vil mapper blive undersøgt fra toppen og ned.
- en fejl: Det giver en fejlbehandler, hvis der opstår en fejl
- følgelinks : hvis den er indstillet til True, besøger mapper refereret af systemlinks
Vend tilbage: returnerer navnet på hver fil og mappe i en mappe og enhver af dens undermapper.
Eksempel: Hent kun '.txt'-filer i en mappe
I dette eksempel bruger Python-scriptet os-modulet til at gå gennem filer i den angivne mappe (C://Users//Vanshi//Desktop//gfg) og dens undermapper. Den identificerer og udskriver navnene på filer med filtypenavnet .txt og udfylder listevariablen med de ønskede tekstfiler.
Python3
array.fra java
# 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)> |
>
>
Produktion:

Bruger os.scandir()-metoden til at vise filer i en mappe
os.scandir() er en effektiv version af os.listdir()-funktionen. Det blev senere udgivet af Python og understøttes til Python 3.5 og nyere.
Syntaks: os.scandir(sti)
Parameter:
- Sti- Vejen til mappen.
Returtype: returnerer en iterator af os.DirEntry-objekt.
Eksempel: Liste alle filer og mapper i en mappe.
I dette eksempel bruger Python-scriptet os-modulet til at vise filer og mapper i den angivne sti (C://Users//Vanshi//Desktop//gfg). Den anvender os.scandir() til at opnå en iterator af os.DirEntry-objekter, der repræsenterer poster i mappen.
Python3
mit fulde form
# 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)> |
>
>
Produktion:

Liste filer i en mappe ved hjælp af glob-modulet i Python
Det glob modul henter filer/stinavne, der matcher et specificeret mønster. Nedenfor er de måder, hvorpå vi kan liste filer i en mappe ved hjælp af glob-modulet:
- glob() Metode
- iglob() metode
Brug af glob()-metoden til at hente alle filer i en mappe
Med glob , kan vi bruge jokertegn (*, ?, [intervaller]) for at gøre stisøgning mere enkel og bekvem.
Syntaks: glob.glob(stinavn, *, rekursiv=False)
Parametre:
- stinavn : Stien til biblioteket eller det mønster, der skal matche.
- rekursiv (Valgfrit): En boolsk parameter (standardværdien er sat til Falsk ), der angiver, om søgningen skal være rekursiv, dvs. om den skal indeholde undermapper.
Vender tilbage:
- Liste over matchende filstier
Eksempel: Python-filmatchning og udskrivning ved hjælp af 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)> |
>
>
Produktion:

10 ml er hvor meget
Brug af iglob()-metoden til at liste filer i en mappe
iglob() metode kan bruges til at udskrive filnavne rekursivt, hvis den rekursive parameter er sat til True. Dette bruges til store mapper, da det er mere effektivt end glob()-metoden.
Syntaks: glob.iglob(stinavn, *, rekursiv=False)
Parameter:
- stinavn = Vejen til mappen.
- rekursiv (Valgfri)= En boolesk parameter (standardværdien er sat til Falsk ), der angiver, om søgningen skal være rekursiv, dvs. om den skal indeholde undermapper.
Vender tilbage: Iterator af matchende filstier
Eksempel: Udskriv stier, der matcher det angivne mønster i en mappe.
I dette eksempel bruger Python-scriptet glob-modulet til at finde og udskrive stier, der matcher det angivne mønster (C:UsersVanshiDesktopgfg***.txt). Den anvender glob.iglob() til at returnere en iterator, som derefter bruges til at udskrive stierne til alle tekstfiler, der findes i den angivne mappe og dens undermapper.
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>)> |
>
>
Produktion:

Dette er de 5 måder, du kan bruge til at få detaljer om filer og mapper i en mappe. Python har leveret flere indbyggede metoder, som du kan bruge til at kende filerne, der findes i en mappe. Denne tutorial viste nemme metoder med eksempler til at forstå, hvordan man får fillister med os-modulet og glob-modulet.
Lignende lyder:
- Liste filer i mappe med filtypenavn
- List alle filer af en bestemt type i en mappe ved hjælp af Python
- Liste over mapper og filer i Python
- Få liste over filer i mappe med størrelse
- Filhåndtering i Python