Hur listar du filer i en katalog med Python?

i den här handledningen täcker vi allt du behöver veta om hur man listar filer i en katalog med Python.

Python är ett allmänt språk, som används i en mängd olika områden som datavetenskap, maskininlärning och även i webbutveckling. Det verkar inte finnas någon begränsning i tillämpningen av Python-språket.

därför verkar det ganska trivialt Python kan användas för att lista filer och kataloger i alla system., Syftet med denna artikel är att belysa läsaren om hur man listar filer i ett system med Python.

lista alla filer i en katalog med Python

för att interagera med kataloger i ett system med Python, används biblioteketos.

1. Med hjälp av ” os ” – biblioteket

metoden som vi ska utöva för vårt motiv är listdir(). Som namnet antyder används det för att lista objekt i kataloger.,

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

utgång:

game_file.pyhi-lo_pygame.pyJournaldevlist_files1.pyhi_lo_pygame.mp4test.pylist_files.pymy_program.cppa.outcut.cpp

Linux-användare kan enkelt matcha ovanstående utgång med hjälp av standardls kommandot på terminalen.

listobjekt som använder kommandot ’ls’

eftersom vi kan se utdata från varje metod matchar.

2., Använda biblioteket”glob”

glob är oftast ett filnamn mönster matchande bibliotek, men det kan användas för att lista objekt i den aktuella katalogen med:

utgång:

game_file.pyhi-lo_pygame.pyJournaldevlist_files1.pyhi_lo_pygame.mp4test.pylist_files.pymy_program.cppa.outcut.cpp

jokertecken '*' används för att matcha alla objekt i den aktuella katalogen. Eftersom vi vill visa objekten i den aktuella katalogen måste vi stänga av den rekursiva karaktären hos glob() – funktionen.

3., Lista endast filer i den aktuella katalogen

i ovanstående metoder returnerade python-koden alla objekt i den aktuella katalogen oavsett deras natur. Vi kan bara extrahera filerna med hjälp av path.isfile() – funktionen i os – biblioteket.

Output:

game_file.pyhi-lo_pygame.pylist_files1.pyhi_lo_pygame.mp4test.pylist_files.pymy_program.cppa.outcut.cpp

i ovanstående kodavsnitt används Listförståelse för att filtrera bort endast de objekt som faktiskt är en fil.,

en annan viktig sak att notera här är att ovanstående kod inte fungerar för andra kataloger som variabeln 'f' är inte en absolut sökväg, men en relativ sökväg till den aktuella katalogen.

lista alla filer i en katalog rekursivt

för att skriva ut filerna i en katalog och dess underkataloger måste vi korsa dem rekursivt.

1. Med hjälp av”os” – biblioteket

med hjälp av walk() – metoden kan vi korsa varje underkatalog i en katalog En efter en.,

Output:

os.walk()-metoden följer helt enkelt varje underkatalog och extraherar filerna på ett top-down sätt som standard. Det finns tre iteratorer som används för att gå igenom produktionen av os.walk() funktion:

  • path – denna variabel innehåller den nuvarande katalogen funktionen observerar under en viss iteration
  • folders – denna variabel är en lista över kataloger inuti 'path' katalog.,
  • files – en lista med filer i katalogen'path'.

metodenjoin() används för att sammanfoga filnamnet med dess överordnade katalog, vilket ger oss den relativa sökvägen till filen.

2. Med hjälp av”glob” – biblioteket

som liknar ovanstående procedur kan glob rekursivt besöka varje katalog och extrahera alla objekt och returnera dem.,

Output:

'**' symbol som används tillsammans med sökvägsvariabeln talar om för funktionenglob() att matcha filer i någon underkatalog. '*' talar om för funktionen att matcha med alla objekt i en katalog.

eftersom vi bara vill extrahera filerna i hela katalogen filtrerar vi ut filerna med funktionenisfile() som användes tidigare.

lista alla underkataloger i en katalog

i stället för att lista filer kan vi lista alla underkataloger som finns i en viss katalog.,

Output:

./Documents/Journaldev

den mindre skillnaden mellan lista filer och kataloger är valet av iterator under processen medos.walk() funktion. För filer itererar vi över filvariabeln. Här slingrar vi över mappvariabeln.

lista filer i en katalog med absolut sökväg

När vi vet hur man listar filer i en katalog, sedan visar den absoluta sökvägen är en bit av kakan. Metodenabspath() ger oss den absoluta sökvägen för en fil.,

utgång:

en sak att notera här är attabspath() måste förses med den relativa sökvägen till filen och det är syftet medjoin() funktion.

lista filer i en katalog genom att matcha mönster

det finns flera sätt att filtrera bort filnamn som matchar ett visst mönster. Låt oss gå igenom var och en av dem en efter en.

1. Använda ’fnmatch’ – biblioteket

som namnet antyder är fnmatch ett filename pattern matching library., Med hjälp avfnmatch med våra standardfilnamn extrahera bibliotek, kan vi filtrera bort dessa filer som matchar ett visst mönster.

utgång:

List of files containing "file" in them./Documents/game_file.py./Documents/list_files1.py./Documents/list_files.py

funktionenfnmatch() tar i två parametrar, filnamnet följt av mönstret som ska matchas. I ovanstående kod tittar vi på alla filer som innehåller ordet file I dem.

2. Använda”glob” – biblioteket

som vi nämnde tidigare är glob's primärt syfte filnamnsmatchning.,

utgång:

./Documents/list_files1.py

ovanstående mönster matchar Reguljärt uttryck'**/**.*' kan förklaras som:

3. Använda biblioteket’ pathlib ’

pathlib följer ett objektorienterat sätt att interagera med filsystemet. Funktionenrglob() I biblioteket kan användas för att rekursivt extrahera lista över filer via ett visst Sökvägsobjekt.

listan med filer kan filtreras med ett mönster i funktionen rglob().,

utgång:

Documents/my_program.cppDocuments/Journaldev/mastermind.py

ovanstående kodavsnitt används för att lista alla filer som börjar med bokstaven'm'.

lista filer i en katalog med en specifik förlängning

notering filer med en specifik förlängning i Python är något liknande mönstermatchning. För detta ändamål måste vi skapa ett mönster med avseende på filändelsen.

utgång:

funktionenfnmatch() filtrerar bort de filer som slutar med'.py', det vill säga python-filer., Om vi vill extrahera filer med olika tillägg måste vi ändra den här delen av koden. För att till exempel bara hämta C++ – filer måste '.cpp' användas.

detta sammanfattar sätten att hämta listan över filer i en katalog med Python.

slutsats

det kan finnas flera sätt att lösa alla problem till hands, och det mest praktiska är inte alltid svaret. När det gäller den här artikeln måste en Python-programmerare vara medveten om alla sätt vi kan lista filer i en katalog.

Share

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *