logo

Metóda Python os.listdir().

Je celkom možné, že sme sa v živote stretli s toľkými prípadmi, kedy chceme vedieť, koľko a aké súbory sa nachádzajú v adresári (priečinku). Alebo niekedy musíme hľadať súbor a poznáme jeho názov, ale nevieme, v ktorom priečinku sa nachádza. V tom prípade nám ostáva jediná možnosť – hľadať súbor v cieľovom adresári.

Teraz by sa mnohým z nás zdalo také ľahké myslieť; musíme ísť do adresára a pozrieť sa tam. Toto je možná možnosť, ale táto možnosť bude fungovať len vtedy, keď sa v danom adresári nachádza len menší počet súborov. Až potom môžeme tento adresár navštíviť manuálne a vyhľadať súbory, ktoré sa v ňom nachádzajú. Ale čo v prípade, keď sa v cieľovom adresári nachádza veľké množstvo súborov, povedzme tisíce súborov. V takom prípade táto možnosť nebude fungovať, pretože vyhľadávanie bude trvať veľmi dlho (dokonca aj veľa dní), ak sa konkrétny súbor nachádza v cieľovom adresári, kde sa nachádzajú tisíce súborov. Zdá sa, že čo by sme mali robiť, ak musíme nájsť súbor s jeho názvom v adresári s tisíckami súborov.

Názov môžeme vyhľadať pomocou prieskumníka súborov, ale ak to urobíme, bude to tiež trvať veľa času, nie ako v predchádzajúcej možnosti, ale áno, veľa času. Je to preto, že prieskumník súborov prehľadá každý súbor prítomný v adresári a musíme tak dlho čakať, kým sa dokončí úplné skenovanie disku.

Ale čo keď povieme, že sme už poskytli mená všetkých súborov prítomných v cieľovom adresári alebo ceste. Potom bude pre nás veľmi jednoduché skontrolovať, či sa daný súbor nachádza v cieľovej ceste, a tiež ukáže, kde potrebujeme získať názvy všetkých súborov prítomných v cieľovom adresári.

Ak dostaneme zoznam názvov všetkých súborov prítomných v adresári v textovej forme, stačí zadať názov konkrétneho súboru do vyhľadávacieho panela. A potom nebude trvať ani sekundu, kým zistíte, či sa súbor nachádza v zozname mien alebo nie. Môžeme teda pochopiť, ako veľmi je dôležité mať metódu, pomocou ktorej môžeme vytlačiť zoznam mien všetkých súborov prítomných v adresári alebo ceste.

Python nám poskytuje také metódy, kde môžeme vytlačiť zoznam mien, a jednou z takýchto metód je funkcia listdir() modulu 'os'. Túto metódu listdir() sa naučíme v tomto návode a použijeme ju v programe Python na vytlačenie zoznamu názvov všetkých súborov prítomných v zadanej ceste.

topológie siete

os.listdir() metóda v Pythone

Funkcia listdir() je funkcia poskytovaná modulom os a pomocou tejto funkcie môžeme vytlačiť zoznam názvov všetkých súborov prítomných v zadanej ceste. Metóda listdir() sa dá použiť aj vtedy, ak chceme vytlačiť zoznam súborov prítomných v aktuálnom pracovnom adresári (kde sa program nachádza). Metódu listdir() môžeme použiť vždy, keď sa od nás vyžaduje získať mená všetkých súborov prítomných v zadanom adresári.

Syntax funkcie os.listdir():

Nasleduje syntax na použitie funkcie listdir() z modulu os:

 >> os.listdir(pathSpecified) 

Parametre:

Ako môžeme vidieť vo vyššie uvedenej syntaxi, argument sme zadali iba vo vnútri metódy listdir(). funkcia listdir() má nasledujúci parameter cesty:

    špecifikovaná cesta:Tu premenná pathSpecified predstavuje cestu k cieľovému adresáru, odkiaľ chceme poznať názov všetkých súborov. Toto je voliteľný argument vo funkcii listdir() a ak vo funkcii neposkytneme zadanú cestu, vypíše všetky názvy súborov z aktuálneho pracovného adresára.

Typ návratu:

Návratový typ funkcie listdir() je 'list', pretože vracia zoznam názvov všetkých súborov prítomných v zadanom adresári.

os.listdir() Metóda: Implementácia:

Aby sme pochopili fungovanie a implementáciu funkcie listdir(), použijeme ju v ukážkovom programe a vytlačíme z nej zoznam názvov súborov. Implementačnú časť funkcie listdir() sme rozdelili na tieto dve časti:

  1. Tlač názvov súborov z aktuálneho pracovného adresára
  2. Tlač názvov súborov zo zadanej cesty

Použijeme vzorový program pre každú kategóriu a získame názvy súborov v každej metóde.

Metóda 1: Tlač názvov súborov z aktuálneho pracovného adresára:

Pri tejto metóde vytlačíme zoznam názvov súborov z aktuálneho pracovného adresára pomocou inej funkcie modulu os, t. j. funkcie getcwd(). Pozrite si nasledujúci vzorový program, aby ste pochopili implementáciu tejto metódy:

css okraj

Príklad 1:

Pozrite sa na nasledujúci program Python, kde sme použili metódu os.listdir() s argumentom path:

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

Výkon:

 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'] 

Ako vidíme, názvy všetkých súborov prítomných v našom aktuálnom pracovnom adresári sú vytlačené vo výstupe programu.

Vysvetlenie:

Po importovaní modulu os do programu sme pomocou funkcie getcwd() získali cestu k aktuálnemu pracovnému adresáru. Inicializovali sme premennú s názvom 'pathSpecified' a do tejto premennej sme uložili cestu k aktuálnemu pracovnému adresáru. Potom sme použili funkciu listdir() v inej inicializovanej premennej, t. j. listOfFileNames, na uloženie názvov všetkých súborov do tejto premennej. Poskytli sme inicializovanú premennú pre aktuálnu pracovnú cestu ako argument vo funkcii listdir() a nakoniec sme vytlačili zoznam všetkých mien vo výstupe pomocou príkazu print.

Ak v našom programe nechceme použiť žiadnu inú funkciu, potom môžeme všetky názvy súborov získať aj z aktuálneho adresára, v ktorom sa program nachádza. Len musíme opustiť funkciu listdir() namiesto toho, aby sme ako argument poskytli cestu k ľubovoľnému adresáru, a potom program, keď je spustený, poskytne zoznam všetkých mien prítomných v aktuálnom adresári ako výsledok vo výstupe. Pozrite si nasledujúci vzorový program, aby ste pochopili implementáciu tejto metódy:

Príklad 2:

Pozrite sa na nasledujúci program Python, kde sme použili metódu os.listdir() bez akéhokoľvek argumentu:

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

Výkon:

 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'] 

Ako vidíme, zoznam názvov všetkých súborov prítomných v aktuálnom súbore, kde je nainštalovaný Python, sa vytlačí na výstupe po spustení programu.

preg_match

Vysvetlenie:

V tomto programe sme vynechali parameter path a stále máme zoznam názvov všetkých súborov prítomných v aktuálnom pracovnom adresári. Túto metódu použijeme radšej, ak chceme získať zoznam názvov všetkých súborov z aktuálneho pracovného adresára. Pretože pri tejto metóde nemusíme používať žiadny argument ani definovať žiadnu premennú cesty, a tak to šetrí akýkoľvek riadok kódu navyše v našom programe a šetrí náš čas.

Metóda 2: Tlač názvov súborov zo zadanej cesty:

V tejto metóde môžeme získať zoznam názvov všetkých súborov prítomných v zadanom adresári poskytnutím zadanej cesty k adresáru vo funkcii listdir(). Cestu k adresáru môžeme získať z voľby vlastností súboru a potom môžeme rovnaký súbor použiť v programe. Pozrite si nasledujúci vzorový program, aby ste pochopili implementáciu tejto metódy:

Príklad 3:

Pozrite sa na nasledujúci program Python, kde sme použili metódu os.listdir() s argumentom path:

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

Výkon:

 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'] 

Ako vidíme, názvy všetkých súborov prítomných v zadanom adresári sú vytlačené vo výstupe programu.

Vysvetlenie:

Po naimportovaní modulu os v programe sme najskôr definovali cestu k adresáru, odkiaľ chceme vytlačiť zoznam všetkých názvov súborov inicializáciou premennej cesty. Potom sme použili inicializovanú premennú cesty v metóde listdir() na použitie cesty ako argumentu vo funkcii. Nakoniec sme použili inú inicializovanú premennú (listOfFileNames) vo vnútri tlačového príkazu na vytlačenie výsledku vo výstupe.

Záver

V tomto návode sme sa dozvedeli o metóde listdir() modulu os a pochopili sme dôležitosť tejto funkcie. Dozvieme sa o syntaxi tejto funkcie a potom sa naučíme metódy na používanie tejto funkcie. Nakoniec sme použili program Python s funkciou listdir(), aby sme pochopili implementáciu každej metódy.