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