Povsem mogoče je, da smo v življenju naleteli na toliko primerov, ko želimo vedeti, koliko in katere datoteke so v imeniku (mapi). Ali pa včasih moramo iskati datoteko in vemo njeno ime, vendar ne vemo, v kateri mapi je prisotna. V tem primeru nam ostane edina možnost, da poiščemo datoteko v ciljnem imeniku.
Zdaj bi se mnogim od nas zdelo tako enostavno razmišljati; preprosto moramo iti v imenik in pogledati tam. To je možna možnost, vendar bo delovala le, če imamo v tem imeniku le manjše število datotek. Šele nato lahko ročno obiščemo ta imenik in poiščemo tam prisotne datoteke. Toda kaj v primeru, ko je v ciljnem imeniku veliko število datotek, recimo na tisoče datotek. V tem primeru ta možnost ne bo delovala, ker bo iskanje trajalo zelo dolgo (celo več dni), če je določena datoteka prisotna v ciljnem imeniku, kjer je na tisoče datotek. Zdi se, kot bi morali storiti, če bi morali najti datoteko z njenim imenom v imeniku, ki vsebuje na tisoče datotek.
Ime lahko iščemo prek raziskovalca datotek, a če to storimo, bo tudi to vzelo veliko časa, ne tako kot pri prejšnji možnosti, ampak ja, veliko časa. To je zato, ker bo raziskovalec datotek skeniral vsako datoteko v imeniku, zato moramo čakati toliko časa, da se konča popolno skeniranje diska.
Kaj pa, če rečemo, da smo že podali imena vseh datotek, ki so prisotne v ciljnem imeniku ali poti. Nato bomo zelo enostavno preverili, ali je določena datoteka prisotna na ciljni poti, poleg tega pa bo prikazano, kje moramo dobiti imena vseh datotek, ki so prisotne v ciljnem imeniku.
Če dobimo seznam imen vseh datotek, ki so prisotne v imeniku, v besedilni obliki, moramo le vnesti ime te določene datoteke v iskalno vrstico. In potem ne bo trajalo niti sekunde, da ugotovite, ali je datoteka prisotna na seznamu imen ali ne. Tako lahko razumemo, kako pomembno je imeti metodo, s katero lahko natisnemo seznam imen vseh datotek v imeniku ali na poti.
Python nam ponuja takšne metode, kjer lahko natisnemo seznam imen, in ena takih metod je funkcija listdir() modula 'os'. V tej vadnici se bomo naučili te metode listdir() in jo uporabili v programu Python za tiskanje seznama imen vseh datotek, ki so prisotne na določeni poti.
repozitorij maven
os.listdir() Metoda v Pythonu
Funkcija listdir() je funkcija, ki jo zagotavlja modul os, in z uporabo te funkcije lahko natisnemo seznam imen vseh datotek, ki so prisotne na podani poti. metodo listdir() lahko uporabimo tudi, če želimo natisniti seznam datotek, ki so prisotne v trenutnem delovnem imeniku (kjer je prisoten program). Metodo listdir() lahko uporabimo, kadar koli moramo pridobiti imena vseh datotek v določenem imeniku.
Sintaksa za funkcijo os.listdir():
Sledi sintaksa za uporabo funkcije listdir() iz modula os:
>> os.listdir(pathSpecified)
Parametri:
Kot lahko vidimo v zgornji sintaksi, smo podali samo argument znotraj metode listdir(). funkcija listdir() sprejme naslednji parameter poti:
Vrsta vračila:
Tip vrnitve za funkcijo listdir() je 'seznam', saj vrne seznam imen vseh datotek v navedenem imeniku.
os.listdir() Metoda: Izvedba:
Da bi razumeli delovanje in implementacijo funkcije listdir(), jo bomo uporabili v vzorčnem programu in iz nje natisnili seznam imen datotek. Izvedbeni del funkcije listdir() smo razdelili na naslednja dva dela:
- Tiskanje imen datotek iz trenutnega delovnega imenika
- Tiskanje imen datotek z podane poti
Uporabili bomo primer programa za vsako kategorijo in dobili imena datotek v vsaki metodi.
1. način: Tiskanje imen datotek iz trenutnega delovnega imenika:
Pri tej metodi bomo natisnili seznam imen datotek iz trenutnega delovnega imenika z uporabo druge funkcije modula os, to je funkcije getcwd(). Za razumevanje izvajanja te metode si oglejte naslednji primer programa:
Primer 1:
Oglejte si naslednji program Python, kjer smo uporabili metodo os.listdir() z argumentom poti:
# Import os module import os # Use getcwd() function pathSpecified = os.getcwd() # Using listdir() function listOfFileNames = os.listdir(pathSpecified) # Print the name of all files in the current working directory print('Following is the list of names of all the files present in the current working directory: ') print(listOfFileNames)
Izhod:
Following is the list of names of all the files present in the current working directory: ['.ipynb_checkpoints', '1510981730952-33afef2b-eb41-4592-8d3f-bd3e19932d36_.pdf', '1510981730952-33afef2b-eb41-4592-8d3f-bd3e19932d36__19.webp', '1527589430558.webp', '1605467180870.webp', '1605467180879.webp', '160591-fruit-template-16x9.pptx', '1613034967066.webp', '1613034967083.webp', '1613035079325.webp', '1613035270313.webp', '1616159417742.webp', '1616159417758.webp', ???., Windows11InstallationAssistant.exe', 'WindowsPCHealthCheckSetup.msi', 'Word frequency Python.edited.docx', 'wrong.webp', 'X-ray image.webp', 'XML-data.xml', 'yemen500.webp', 'zambia-500.webp', 'zimbabwe-500.webp', 'ZoomInstaller (1).exe', 'ZoomInstaller.exe', '__pycache__', '~$EOC CERTIFICATE.pptx']
Kot lahko vidimo, so imena vseh datotek v našem trenutnem delovnem imeniku natisnjena v izhodu programa.
ups
Pojasnilo:
Po uvozu modula os v program smo s funkcijo getcwd() pridobili pot trenutnega delovnega imenika. Inicializirali smo spremenljivko z imenom 'pathSpecified' in v to spremenljivko shranili pot trenutnega delovnega imenika. Po tem smo uporabili funkcijo listdir() v drugi inicializirani spremenljivki, tj. listOfFileNames, da shranimo imena vseh datotek v tej spremenljivki. Inicializirano spremenljivko za trenutno delovno pot smo zagotovili kot argument v funkciji listdir() in nazadnje smo natisnili seznam vseh imen v izhodu z uporabo izjave za tiskanje.
Če ne želimo uporabljati nobene druge funkcije v našem programu, lahko dobimo tudi vsa imena datotek iz trenutnega imenika, v katerem je program. Preprosto moramo zapustiti funkcijo listdir(), namesto da podamo pot katerega koli imenika kot argument, nato pa bo program, ko se izvede, dal seznam vseh imen, ki so prisotna v trenutnem imeniku, kot rezultat v izhodu. Za razumevanje izvajanja te metode si oglejte naslednji primer programa:
Primer 2:
Oglejte si naslednji program Python, kjer smo uporabili metodo os.listdir() brez kakršnih koli argumentov:
# Import os module import os # Using listdir() function listOfFileNames = os.listdir() # Print the name of all files in the current working directory print('Following is the list of names of all the files present in the current working directory: ') print(listOfFileNames)
Izhod:
Following is the list of names of all the files present in the current working directory: ['.ipynb_checkpoints', '1510981730952-33afef2b-eb41-4592-8d3f-bd3e19932d36_.pdf', '1510981730952-33afef2b-eb41-4592-8d3f-bd3e19932d36__19.webp', '1527589430558.webp', '1605467180870.webp', '1605467180879.webp', '160591-fruit-template-16x9.pptx', '1613034967066.webp', '1613034967083.webp', '1613035079325.webp', '1613035270313.webp', '1616159417742.webp', '1616159417758.webp', ???., Windows11InstallationAssistant.exe', 'WindowsPCHealthCheckSetup.msi', 'Word frequency Python.edited.docx', 'wrong.webp', 'X-ray image.webp', 'XML-data.xml', 'yemen500.webp', 'zambia-500.webp', 'zimbabwe-500.webp', 'ZoomInstaller (1).exe', 'ZoomInstaller.exe', '__pycache__', '~$EOC CERTIFICATE.pptx']
Kot lahko vidimo, je seznam imen vseh datotek, ki so prisotne v trenutni datoteki, kjer je nameščen Python, natisnjen v izhodu po izvedbi programa.
mamta kulkarni
Pojasnilo:
V tem programu smo izpustili parameter poti in še vedno dobimo seznam imen vseh datotek v trenutnem delovnem imeniku. To metodo bomo raje uporabili, če želimo pridobiti seznam vseh imen datotek iz trenutnega delovnega imenika. Ker nam pri tej metodi ni treba uporabiti nobenega argumenta ali definirati nobene spremenljivke poti, in tako prihrani morebitno dodatno vrstico kode v našem programu in prihrani naš čas.
2. način: Tiskanje imen datotek z določene poti:
Pri tej metodi lahko pridobimo seznam imen vseh datotek, ki so prisotne v določenem imeniku, tako da zagotovimo podano pot imenika znotraj funkcije listdir(). Pot do imenika lahko pridobimo iz možnosti lastnosti datoteke, nato pa lahko isto datoteko uporabimo v programu. Za razumevanje izvajanja te metode si oglejte naslednji primer programa:
Primer 3:
Oglejte si naslednji program Python, kjer smo uporabili metodo os.listdir() z argumentom poti:
# Import os module import os # Define the specified path pathSpecified = ' C:UsersManishDownloads' # Using listdir() function listOfFileNames = os.listdir(pathSpecified) # Print the name of all files in directory print('Following is the list of names of all the files present in the specified directory: ') print(listOfFileNames)
Izhod:
Following is the list of names of all the files present in the specified directory: ['.ipynb_checkpoints', '1510981730952-33afef2b-eb41-4592-8d3f-bd3e19932d36_.pdf', '1510981730952-33afef2b-eb41-4592-8d3f-bd3e19932d36__19.webp', '1527589430558.webp', '1605467180870.webp', '1605467180879.webp', '160591-fruit-template-16x9.pptx', '1613034967066.webp', '1613034967083.webp', '1613035079325.webp', '1613035270313.webp', '1616159417742.webp', '1616159417758.webp', ........, Windows11InstallationAssistant.exe', 'WindowsPCHealthCheckSetup.msi', 'Word frequency Python.edited.docx', 'wrong.webp', 'X-ray image.webp', 'XML-data.xml', 'yemen500.webp', 'zambia-500.webp', 'zimbabwe-500.webp', 'ZoomInstaller (1).exe', 'ZoomInstaller.exe', '__pycache__', '~$EOC CERTIFICATE.pptx']
Kot lahko vidimo, so imena vseh datotek v navedenem imeniku natisnjena v izhodu programa.
Pojasnilo:
Po uvozu modula os v program smo najprej z inicializacijo spremenljivke poti določili pot imenika, iz katerega želimo natisniti seznam vseh imen datotek. Po tem smo uporabili inicializirano spremenljivko poti znotraj metode listdir() za uporabo poti kot argumenta v funkciji. Nazadnje smo uporabili še eno inicializirano spremenljivko (listOfFileNames) znotraj izjave za tiskanje, da natisnemo rezultat v izhodu.
Zaključek
V tej vadnici smo spoznali metodo listdir() modula os in razumeli pomen te funkcije. Spoznamo sintakso te funkcije, nato pa se naučimo metod za uporabo te funkcije. Nazadnje smo uporabili program Python s funkcijo listdir(), da bi razumeli izvajanje vsake metode.