ebben az oktatóanyagban mindent lefedünk, amit tudnod kell arról, hogyan lehet fájlokat felsorolni egy könyvtárban a Python használatával.
a Python egy általános célú nyelv, amelyet számos területen használnak, például az Adattudományban, a gépi tanulásban, sőt a webfejlesztésben is. Úgy tűnik, hogy nincs korlátozás a Python nyelv alkalmazásában.
ezért úgy tűnik, elég triviális Python lehet használni, hogy felsorolja a fájlokat, könyvtárakat bármilyen rendszerben., Ennek a cikknek az a célja, hogy megvilágítsa az olvasót a fájlok Python használatával történő listázásának módjairól.
sorolja fel a könyvtárban lévő összes fájlt a Python
használatával a Python-t használó rendszer könyvtáraival való kölcsönhatás céljából aos
könyvtárat használják.
1. Az ” os ” könyvtár használata
az a módszer, amelyet motívumunkra fogunk gyakorolni, a listdir(). Ahogy a neve is sugallja, a könyvtárak elemeinek felsorolására szolgál.,
# 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)
kimenet:
game_file.pyhi-lo_pygame.pyJournaldevlist_files1.pyhi_lo_pygame.mp4test.pylist_files.pymy_program.cppa.outcut.cpp
a Linux felhasználók könnyen illeszthetik a fenti kimenetet a standard ls
parancs a terminálon.
mint láthatjuk a kimenetek minden módszer mérkőzések.
2., A”glob”könyvtár használata
glob
többnyire egy fájlnév-mintaillesztési könyvtár, de az aktuális könyvtárban található elemek felsorolására használható:
kimenet:
game_file.pyhi-lo_pygame.pyJournaldevlist_files1.pyhi_lo_pygame.mp4test.pylist_files.pymy_program.cppa.outcut.cpp
a helyettesítő karakter'*'
az aktuális könyvtár összes elemének egyeztetésére szolgál. Mivel az aktuális könyvtár elemeit szeretnénk megjeleníteni, ki kell kapcsolnunk a glob()
függvény rekurzív jellegét.
3., Csak a
aktuális könyvtárban található fájlokat sorolja fel a fenti módszerekben, a python kód természetétől függetlenül visszaküldte az aktuális könyvtár összes elemét. Csak a path.isfile()
függvény segítségével tudjuk kibontani a fájlokat a os
könyvtárban.
kimenet:
game_file.pyhi-lo_pygame.pylist_files1.pyhi_lo_pygame.mp4test.pylist_files.pymy_program.cppa.outcut.cpp
a fenti kódrészletben a lista megértése csak azokat az elemeket szűri ki, amelyek valójában egy fájl.,
egy másik fontos dolog, amit itt meg kell jegyezni, hogy a fenti kód nem működik más könyvtáraknál, mivel a 'f'
változó nem abszolút elérési út, hanem az aktuális könyvtár relatív elérési útja.
sorolja fel a könyvtárban található összes fájlt rekurzív módon
annak érdekében, hogy a fájlokat egy könyvtárban és annak alkönyvtáraiban kinyomtassuk, rekurzív módon kell áthaladnunk.
1. Az ” os “könyvtár
segítségével a walk()
módszer, tudjuk áthaladni minden alkönyvtár egy könyvtárban egyenként.,
kimenet:
a os.walk()
módszer egyszerűen követi az egyes alkönyvtárakat, és alapértelmezés szerint felülről lefelé bontja ki a fájlokat. Három iterators használt át a kimenetet a os.walk()
funkció:
-
path
– Ez a változó tartalmazza a jelenlegi könyvtárat a funkció megfigyelése során egy bizonyos iterációs -
folders
– Ez változó, van egy lista a könyvtárak belül a'path'
könyvtár., -
files
– a fájlok listája a'path'
könyvtárban.
ajoin()
módszer a fájlnév szülő könyvtárával való összekapcsolására szolgál, megadva nekünk a fájl relatív elérési útját.
2. A “glob” könyvtár használata
a fenti eljáráshoz hasonlóan a glob
rekurzívan meglátogathat minden könyvtárat, kivonhat minden elemet, és visszaküldheti azokat.,
kimenet:
a '**'
a path változóval együtt használt szimbólum azt mondja, hogy a glob()
függvény a fájlok bármely alkönyvtáron belüli illesztéséhez. A'*'
jelzi a függvénynek, hogy megfeleljen a könyvtár összes elemének.
mivel csak a teljes könyvtárban lévő fájlokat szeretnénk kibontani, kiszűrjük a fájlokat a korábban használt isfile()
funkcióval.
sorolja fel az összes alkönyvtárat a
könyvtárban a fájlok felsorolása helyett felsorolhatjuk az adott könyvtárban található összes alkönyvtárat.,
kimenet:
./Documents/Journaldev
a kisebb különbség a listázó fájlok és könyvtárak között az iterátor kiválasztása a os.walk()
függvény során. Fájlok esetén iteráljuk át a fájlok változóját. Itt hurkoljuk át a mappák változóját.
lista fájlok egy könyvtárban abszolút útvonal
miután tudjuk, hogyan kell felsorolni a fájlokat egy könyvtárban, majd megjeleníti az abszolút útvonal egy szelet tortát. A abspath()
metódus megadja nekünk a fájl abszolút elérési útját.,
kimenet:
egy dolog, amit itt meg kell jegyezni, hogy a abspath()
a fájl relatív elérési útját kell megadni, és ez a join()
funkció célja.
listázza a fájlokat egy könyvtárban a minták illesztésével
többféle módon lehet kiszűrni egy adott mintának megfelelő fájlneveket. Nézzük át őket egyenként.
1. Az “fnmatch” könyvtár használata
ahogy a neve is sugallja, a fnmatch
egy fájlnévminta-illesztési könyvtár., A fnmatch
használatával a szabványos fájlnév-kibontó könyvtárainkkal kiszűrhetjük azokat a fájlokat, amelyek megfelelnek egy adott mintának.
kimenet:
List of files containing "file" in them./Documents/game_file.py./Documents/list_files1.py./Documents/list_files.py
a fnmatch()
függvény két paramétert vesz fel, a fájlnevet a illesztendő minta követi. A fenti kódban megnézzük az összes fájlt, amely a file
szót tartalmazza.
2. A “glob” könyvtár használata
ahogy korábban említettük, glob's
az elsődleges cél a fájlnév minta illesztése.,
kimenet:
./Documents/list_files1.py
a fenti minta megfelelő reguláris kifejezés '**/**.*'
magyarázható:
3. A
pathlib
könyvtár használata a fájlrendszerrel való interakció objektumorientált módját követi. Arglob()
függvény a könyvtáron belül használható a fájlok listájának rekurzív kibontására egy bizonyos Útvonalobjektumon keresztül.
ezek a fájlok listája szűrhető a rglob()
függvény mintájával.,
kimenet:
Documents/my_program.cppDocuments/Journaldev/mastermind.py
a fenti kódrészlet a 'm'
betűvel kezdődő fájlok felsorolására szolgál.
listázza a fájlokat egy könyvtárban egy adott kiterjesztés
Listing fájlokat egy adott kiterjesztés Python némileg hasonló minta megfelelő. Ebből a célból létre kell hoznunk egy mintát a fájlkiterjesztés tekintetében.
Output:
The fnmatch()
function files out those files ending with '.py'
, azaz python files., Ha különböző kiterjesztésű fájlokat akarunk kibontani, akkor meg kell változtatnunk a kód ezen részét. Például Csak C++ fájlok letöltéséhez a '.cpp'
értéket kell használni.
ez összegzi a fájlok listájának lekérésének módjait egy könyvtárban a Python használatával.
következtetés
többféle módon lehet megoldani a problémát, de a legkényelmesebb nem mindig a válasz. Ami ezt a cikket illeti, a Python programozónak tisztában kell lennie azzal, hogy minden módon felsorolhatjuk a fájlokat egy könyvtárban.