logo

Python os.listdir()-methode

Het is heel goed mogelijk dat we in ons leven zoveel gevallen zijn tegengekomen waarin we willen weten hoeveel en welke bestanden er in een directory (map) aanwezig zijn. Of soms moeten we naar een bestand zoeken en weten we de naam ervan, maar weten we niet in welke map het aanwezig is. In dat geval is de enige optie die ons rest, het zoeken naar het bestand in de doelmap.

Nu lijkt het voor velen van ons zo gemakkelijk om te denken; we hoeven alleen maar naar de directory te gaan en daar te kijken. Dit is een mogelijke optie, maar deze optie werkt alleen als er maar een kleiner aantal bestanden in die map aanwezig zijn. Alleen dan kunnen we die map handmatig bezoeken en zoeken naar de bestanden die daar aanwezig zijn. Maar wat in het geval dat er een groot aantal bestanden, laten we zeggen duizenden bestanden, aanwezig zijn in de doelmap. In dat geval zal deze optie niet werken omdat het erg lang (zelfs vele dagen) zal duren om te zoeken of een specifiek bestand aanwezig is in de doelmap waar duizenden bestanden aanwezig zijn. Het lijkt erop wat we zouden moeten doen als we een bestand met zijn naam moeten vinden in een map met duizenden bestanden.

We kunnen via de bestandsverkenner naar de naam zoeken, maar als we dat doen, gaat het ook veel tijd kosten, niet zoals bij de vorige optie, maar ja, veel tijd. Dit komt omdat de bestandsverkenner elk bestand in de map zal scannen, en we zo lang moeten wachten totdat het volledige scannen van de schijf is voltooid.

Maar wat als we zeggen dat we al de namen hebben opgegeven van alle bestanden in de doelmap of het pad. Dan zal het voor ons heel gemakkelijk zijn om te controleren of dat gespecificeerde bestand aanwezig is in het beoogde pad, en het laat ook zien waar we de namen moeten krijgen van alle bestanden die aanwezig zijn in de doelmap.

Als we een lijst met namen krijgen van alle bestanden in een map in tekstvorm, hoeven we alleen maar de naam van dat specifieke bestand in de zoekbalk te typen. En dan duurt het nauwelijks een seconde om erachter te komen of het bestand aanwezig is in de lijst met namen of niet. We kunnen dus begrijpen hoe belangrijk het is om een ​​methode te hebben waarmee we de lijst met namen kunnen afdrukken van alle bestanden die in een map of pad aanwezig zijn.

Python biedt ons zulke methoden waarmee we de lijst met namen kunnen afdrukken, en een van die methoden is de listdir()-functie van de 'os'-module. We gaan deze listdir()-methode in deze tutorial leren en gebruiken deze in een Python-programma om een ​​lijst met namen af ​​te drukken van alle bestanden die aanwezig zijn in het opgegeven pad.

Java-kleuren

os.listdir() Methode in Python

De functie listdir() is een functie die wordt geleverd door de os-module, en door deze functie te gebruiken kunnen we een lijst met namen afdrukken van alle bestanden die aanwezig zijn in het opgegeven pad. listdir() methode kan ook worden gebruikt als we de lijst met bestanden willen afdrukken die aanwezig zijn in de huidige werkmap (waar het programma aanwezig is). We kunnen de methode listdir() gebruiken wanneer we de namen moeten ophalen van alle bestanden in een opgegeven map.

Syntaxis voor de functie os.listdir():

Hieronder volgt de syntaxis voor het gebruik van de functie listdir() van de os-module:

 >> os.listdir(pathSpecified) 

Parameters:

Zoals we kunnen zien in de hierboven gegeven syntaxis, hebben we alleen een argument opgegeven binnen de listdir() methode. De functie listdir() heeft de volgende padparameter:

    pad gespecifieerd:Hier vertegenwoordigt de pathSpecified variabele het pad van de beoogde map waarvandaan we de naam van alle bestanden willen weten. Dit is een optioneel argument in de functie listdir() en als we geen gespecificeerd pad binnen de functie opgeven, worden alle bestandsnamen uit de huidige werkmap afgedrukt.

Retourtype:

Het retourtype voor de functie listdir() is 'list', omdat het een lijst met namen retourneert van alle bestanden die aanwezig zijn in de opgegeven map.

os.listdir() Methode: Implementatie:

Om de werking en implementatie van de functie listdir() te begrijpen, zullen we deze in een voorbeeldprogramma gebruiken en daaruit de lijst met bestandsnamen afdrukken. We hebben het implementatiegedeelte van de functie listdir() in de volgende twee delen verdeeld:

  1. Bestandsnamen afdrukken vanuit de huidige werkmap
  2. Bestandsnamen afdrukken vanaf het opgegeven pad

We zullen voor elke categorie een voorbeeldprogramma gebruiken en de bestandsnamen in elke methode ophalen.

Methode 1: Bestandsnamen afdrukken vanuit de huidige werkmap:

Bij deze methode zullen we de lijst met bestandsnamen uit de huidige werkmap afdrukken door een andere functie van de os-module te gebruiken, namelijk de functie getcwd(). Bekijk het volgende voorbeeldprogramma om de implementatie van deze methode te begrijpen:

Voorbeeld 1:

Kijk naar het volgende Python-programma waarin we de methode os.listdir() met padargument gebruikten:

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

Uitgang:

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

Zoals we kunnen zien, worden de namen van alle bestanden in onze huidige werkmap afgedrukt in de uitvoer van het programma.

Uitleg:

Unix top-commando

Na het importeren van de os-module in het programma hebben we de functie getcwd() gebruikt om het pad van de huidige werkmap op te halen. We hebben een variabele geïnitialiseerd met de naam 'pathSpecified' en het pad van de huidige werkmap in deze variabele opgeslagen. Daarna hebben we de functie listdir() gebruikt in een andere geïnitialiseerde variabele, dat wil zeggen listOfFileNames, om de naam van alle bestanden in deze variabele op te slaan. We hebben de geïnitialiseerde variabele voor het huidige werkpad als argument opgegeven in de functie listdir() en ten slotte hebben we de lijst met alle namen in de uitvoer afgedrukt met behulp van een print-instructie.

Als we geen andere functie in ons programma willen gebruiken, kunnen we ook alle bestandsnamen ophalen uit de huidige map waarin het programma aanwezig is. We hoeven alleen maar de functie listdir() te verlaten in plaats van het pad van een map als argument op te geven, en daarna zal het programma, wanneer het wordt uitgevoerd, de lijst weergeven met alle namen die in de huidige map aanwezig zijn als resultaat in de uitvoer. Bekijk het volgende voorbeeldprogramma om de implementatie van deze methode te begrijpen:

Voorbeeld 2:

Kijk naar het volgende Python-programma waarin we de methode os.listdir() zonder enig argument hebben gebruikt:

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

Uitgang:

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

Zoals we kunnen zien, wordt in de uitvoer een lijst met namen afgedrukt van alle bestanden die aanwezig zijn in het huidige bestand waarin Python is geïnstalleerd nadat het programma is uitgevoerd.

niet-deterministische eindige automaten

Uitleg:

In dit programma hebben we de path-parameter weggelaten en krijgen we nog steeds de lijst met namen van alle bestanden in de huidige werkmap. We geven er de voorkeur aan deze methode te gebruiken als we de lijst met alle bestandsnamen uit de huidige werkmap willen ophalen. Omdat we bij deze methode geen enkel argument hoeven te gebruiken of een padvariabele hoeven te definiëren, en het dus elke extra regel code in ons programma bespaart en onze tijd bespaart.

Methode 2: Bestandsnamen afdrukken vanaf een opgegeven pad:

Bij deze methode kunnen we de lijst met namen verkrijgen van alle bestanden die in een opgegeven map aanwezig zijn, door het opgegeven pad van de map op te geven in de functie listdir(). We kunnen het pad van de map achterhalen via de eigenschappenoptie van het bestand, en dan kunnen we hetzelfde bestand in het programma gebruiken. Bekijk het volgende voorbeeldprogramma om de implementatie van deze methode te begrijpen:

Voorbeeld 3:

Kijk naar het volgende Python-programma waarin we de methode os.listdir() met padargument gebruikten:

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

Uitgang:

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

Zoals we kunnen zien, worden de namen van alle bestanden in de opgegeven map afgedrukt in de uitvoer van het programma.

Uitleg:

Nadat we de os-module in het programma hebben geïmporteerd, hebben we eerst het pad gedefinieerd van de map van waaruit we de lijst met alle bestandsnamen willen afdrukken door een padvariabele te initialiseren. Daarna hebben we de geïnitialiseerde padvariabele in de listdir()-methode gebruikt om het pad als argument in de functie te gebruiken. Ten slotte hebben we een andere geïnitialiseerde variabele (listOfFileNames) in de print-instructie gebruikt om het resultaat in de uitvoer af te drukken.

Conclusie

We leerden in deze tutorial over de listdir()-methode van de os-module en begrepen het belang van deze functie. We leren over de syntaxis van deze functie, en daarna leren we de methoden om deze functie te gebruiken. Als laatste hebben we het Python-programma met de functie listdir() gebruikt om de implementatie van elke methode te begrijpen.