logo

Python – Lista filer i en katalog

Ibland, när man arbetar med filer i Python, uppstår ett problem med hur man får alla filer i en katalog. I den här artikeln kommer vi att täcka olika metoder för hur man listar alla filnamn i en katalog i Python.

Att utföra filoperationer är en måste-ha färdighet för programmerare. Att lära sig filoperationer med Python hjälper till att hantera filer, integrera filer med dina program, bygga verkliga program, etc. Vi kommer att täcka det mest grundläggande konceptet med att lista alla filer som finns i en specifik katalog.



Vi kommer att täcka två moduler och deras respektive funktioner för den här handledningen om att lista filnamn och detaljer i en katalog.

Vad är en katalog i Python?

En katalog, ibland känd som en mapp, är en enhetsorganisationsstruktur i en dators filsystem för att lagra och lokalisera filer eller fler mappar. Python stöder nu flera API:er för att lista kataloginnehållet. Till exempel kan vi använda funktionerna Path.iterdir, os.scandir, os.walk, Path.rglob eller os.listdir.

Katalog som används: gfg



Filer i en katalog

Hur man listar filer i en katalog i Python

Det finns flera sätt att lista alla filer i en katalog. I den här artikeln kommer vi att diskutera nedanstående moduler och deras funktioner för att hämta listan över filer i en katalog. Vi kommer att täcka totalt 5 sätt med exempel för att kontrollera listan över filer i en katalog.

  1. Använder sig av OS-modul
  2. Använder sig av glob modul

Lista filer i en katalog med Os Module i Python

Vi kan använda dessa 3 metoder OS-modul , för att få en lista över filer i en katalog.



  • os.listdir() Metod
  • os.walk() Metod
  • os.scandir() Metod

Använder metoden os.listdir() för att få listan med filer

os.listdir() metod får listan över alla filer och kataloger i en angiven katalog. Som standard är det den aktuella katalogen. Utöver den första nivån av mappar returnerar os.listdir() inga filer eller mappar.

Syntax : os.listdir(sökväg)

Parametrar :

  • Väg : Sökväg till katalogen

Returtyp : returnerar en lista över alla filer och kataloger i den angivna sökvägen

Exempel 1: Få en lista över alla filer i en katalog

I det här exemplet importeras OS-modulen för att interagera med operativsystemet. Listdir-funktionen används för att få en lista över alla filer och kataloger i den angivna sökvägen (C://Users//Vanshi//Desktop//gfg). Resultatet skrivs sedan ut och visar namnen på filer och kataloger som finns på den angivna platsen.

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)>

str.replace i java

>

>

Produktion:

Exempel 2: Hämta alla filer och inga mappar

I det här exemplet ber Python-programmet användaren om en mappsökväg och listar och skriver ut filerna i den katalogen, med hjälp av OS-modulen för kataloginteraktion och filtrering av filer från den erhållna listan.

Python3




alfabetiska siffror
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>=>' '>)>

>

>

Exempel 3: Hämta bara '.txt'-filer från katalogen

I det här exemplet använder Python-skriptet OS-modulen för att iterera genom filer i den aktuella katalogen. Den skriver selektivt ut endast namnen på filer som slutar med .txt, vilket effektivt listar textfiler som finns 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)>

>

>

Produktion:

Använder metoden os.walk() för att komma åt filer i ett katalogträd

OS.walk() genererar filnamn i ett katalogträd. Denna funktion returnerar en lista med filer i en trädstruktur. Metoden går igenom alla kataloger i ett träd.

Syntax: os.walk(top, topdown, onerror, followlinks )

Parametrar:

  • topp: Det är den översta katalogen från vilken du vill hämta namnen på komponentfilerna och mapparna.
  • topdown: Anger att kataloger ska skannas uppifrån och ner när de är inställda på True. Om denna parameter är False kommer kataloger att undersökas uppifrån och ned.
  • onerror: Den tillhandahåller en felhanterare om ett fel påträffas
  • följlänkar : om satt till True, besöker mappar som refereras av systemlänkar

Lämna tillbaka: returnerar namnet på varje fil och mapp i en katalog och någon av dess underkataloger.

Exempel: Hämta bara '.txt'-filer i en katalog

I det här exemplet använder Python-skriptet OS-modulen för att gå igenom filer i den angivna katalogen (C://Users//Vanshi//Desktop//gfg) och dess underkataloger. Den identifierar och skriver ut namnen på filer med filtillägget .txt och fyller i listvariabeln med önskade textfiler.

Python3




# 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:

Använder metoden os.scandir() för att lista filer i en katalog

os.scandir() är en effektiv version av os.listdir()-funktionen. Den släpptes senare av Python och stöds för Python 3.5 och senare.

förbeställ genomgång

Syntax: os.scandir(sökväg)

Parameter:

  • Väg- Sökväg till katalogen.

Returtyp: returnerar en iterator av os.DirEntry-objektet.

Exempel: Lista alla filer och kataloger i en katalog.

I det här exemplet använder Python-skriptet OS-modulen för att lista filer och kataloger i den angivna sökvägen (C://Users//Vanshi//Desktop//gfg). Den använder os.scandir() för att erhålla en iterator av os.DirEntry-objekt som representerar poster i katalogen.

Python3




# 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:

Lista filer i en katalog med globmodulen i Python

De glob modul hämtar filer/sökvägsnamn som matchar ett specificerat mönster. Nedan är de sätt på vilka vi kan lista filer i en katalog med hjälp av globmodulen:

  • glob() Metod
  • iglob() metod

Använder metoden glob() för att hämta alla filer i en katalog

Med glob , vi kan använda jokertecken (*, ?, [intervall]) för att göra sökvägen enklare och bekvämare.

Syntax: glob.glob(sökväg, *, rekursivt=False)

Parametrar:

två till en multiplexor
  • sökvägsnamn : Sökvägen till katalogen eller mönstret som ska matchas.
  • rekursiv (Valfritt): En boolesk parameter (standardvärdet är satt till Falsk ) som anger om sökningen ska vara rekursiv, d.v.s. om den ska inkludera underkataloger.

Returnerar:

  • Lista över matchande filsökvägar

Exempel: Python-filmatchning och utskrift med 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:

Använder metoden iglob() för att lista filer i en katalog

iglob() metod kan användas för att skriva ut filnamn rekursivt om den rekursiva parametern är satt till True. Detta används för stora kataloger eftersom det är mer effektivt än glob()-metoden.

Syntax: glob.iglob(sökväg, *, rekursiv=False)

Parameter:

  • sökväg = Sökväg till katalogen.
  • rekursiv (Valfritt)= En boolesk parameter (standardvärdet är satt till Falsk ) som anger om sökningen ska vara rekursiv, d.v.s. om den ska inkludera underkataloger.

Returnerar: Iterator av matchande filsökvägar

Exempel: Skriv ut sökvägar som matchar det angivna mönstret i en katalog.

I det här exemplet använder Python-skriptet globmodulen för att hitta och skriva ut sökvägar som matchar det angivna mönstret (C:UsersVanshiDesktopgfg***.txt). Den använder glob.iglob() för att returnera en iterator, som sedan används för att skriva ut sökvägarna till alla textfiler som finns i den angivna katalogen och dess underkataloger.

Python3




hur många tangenter har tangentbord
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:

Det här är de 5 sätten du kan använda för att få information om filer och kataloger i en katalog. Python har tillhandahållit flera inbyggda metoder som du kan använda för att känna till filerna som finns i en katalog. Den här handledningen visade enkla metoder med exempel för att förstå hur man får fillistor med OS-modulen och glob-modulen.

Liknande lyder:

  • Lista filer i katalogen med tillägg
  • Lista alla filer av viss typ i en katalog med Python
  • Lista ut kataloger och filer i Python
  • Få lista över filer i katalogen med storlek
  • Filhantering i Python