Det är mycket möjligt att vi har stött på så många tillfällen i vårt liv där vi vill veta hur många och vilka filer som finns i en katalog (mapp). Eller ibland måste vi leta efter en fil, och vi vet dess namn, men vi vet inte i vilken mapp den finns. I så fall är det enda alternativet kvar för oss att leta efter filen i målkatalogen.
Nu verkar det så lätt för många av oss att tänka; vi måste bara gå till katalogen och titta där. Detta är ett möjligt alternativ, men det här alternativet fungerar bara när vi bara har ett mindre antal filer i den katalogen. Först då kan vi besöka den katalogen manuellt och leta efter filerna som finns där. Men vad i fallet med ett stort antal filer, låt oss bara säga tusentals filer som finns i målkatalogen. I så fall kommer det här alternativet inte att fungera eftersom det kommer att ta väldigt lång tid (även många dagar) att söka om en specifik fil finns i målkatalogen där tusentals filer finns. Det verkar som vad vi ska göra om vi måste hitta en fil med dess namn i en katalog med tusentals filer.
Vi kan söka efter namnet genom filutforskaren, men om vi gör det kommer det också att ta mycket tid, inte som i föregående alternativ men ja, mycket tid. Detta beror på att filutforskaren kommer att skanna igenom alla filer som finns i katalogen, och vi måste vänta så mycket tills fullständig genomsökning av disken är klar.
Men vad händer om vi säger att vi redan har angett namnen på alla filer som finns i målkatalogen eller sökvägen. Sedan kommer det att bli väldigt enkelt för oss att kontrollera om den angivna filen finns i den riktade sökvägen, och den visar också var vi behöver hämta namnen på alla filer som finns i målkatalogen.
Om vi får en lista med namn på alla filer som finns i en katalog i textform, behöver vi bara skriva in namnet på den specifika filen i sökfältet. Och då tar det knappt en sekund att ta reda på om filen finns i namnlistan eller inte. Således kan vi förstå hur mycket det är viktigt att ha en metod där vi kan skriva ut listan med namn på alla filer som finns i en katalog eller sökväg.
Python förser oss med sådana metoder där vi kan skriva ut listan med namn, och en sådan metod är listdir()-funktionen i 'os'-modulen. Vi kommer att lära oss den här listdir()-metoden i den här handledningen och använda den i ett Python-program för att skriva ut en lista med namn på alla filer som finns i den angivna sökvägen.
postorder traversal binary tree
os.listdir() Metod i Python
Listdir()-funktionen är en funktion som tillhandahålls av os-modulen, och genom att använda denna funktion kan vi skriva ut en lista med namn på alla filer som finns i den angivna sökvägen. listdir()-metoden kan också användas om vi vill skriva ut listan över filer som finns i den aktuella arbetskatalogen (där programmet finns). Vi kan använda metoden listdir() närhelst vi måste få namnen på alla filer som finns i en specificerad katalog.
Syntax för os.listdir()-funktionen:
Följande är syntaxen för att använda listdir()-funktionen från OS-modulen:
>> os.listdir(pathSpecified)
Parametrar:
Som vi kan se i den ovan givna syntaxen har vi bara angett ett argument i listdir()-metoden. listdir()-funktionen tar följande sökvägsparameter:
Returtyp:
Returtypen för listdir()-funktionen är 'list' eftersom den returnerar en lista med namn på alla filer som finns i den angivna katalogen.
os.listdir() Metod: Implementering:
För att förstå hur listdir()-funktionen fungerar och implementeras kommer vi att använda den i ett exempelprogram och skriva ut listan med filnamn från den. Vi har delat upp implementeringsdelen av listdir()-funktionen i följande två delar:
- Skriver ut filnamn från den aktuella arbetskatalogen
- Skriver ut filnamn från den angivna sökvägen
Vi kommer att använda ett exempelprogram för varje kategori och få filnamnen i varje metod.
Metod 1: Skriva ut filnamn från aktuell arbetskatalog:
I den här metoden kommer vi att skriva ut listan med filnamn från den aktuella arbetskatalogen genom att använda en annan funktion i os-modulen, dvs. getcwd()-funktionen. Titta på följande exempelprogram för att förstå implementeringen av denna metod:
Exempel 1:
Titta på följande Python-program där vi använde os.listdir()-metoden med sökvägsargument:
# 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)
Produktion:
python sort tupel
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']
Som vi kan se skrivs namnen på alla filer som finns i vår nuvarande arbetskatalog ut i programmets utdata.
Förklaring:
Efter att ha importerat OS-modulen i programmet har vi använt getcwd()-funktionen för att få sökvägen till den aktuella arbetskatalogen. Vi har initierat en variabel med namnet 'pathSpecified' och lagrat sökvägen till den aktuella arbetskatalogen i denna variabel. Efter det har vi använt listdir()-funktionen i en annan initierad variabel, dvs listOfFileNames, för att lagra namnet på alla filer i denna variabel. Vi har tillhandahållit initierad variabel för den aktuella arbetssökvägen som ett argument i listdir()-funktionen, och slutligen skrev vi ut listan över alla namn i utdata med en print-sats.
Om vi inte vill använda någon annan funktion i vårt program kan vi också hämta alla filnamn från den aktuella katalogen där programmet finns. Vi måste bara lämna listdir()-funktionen istället för att tillhandahålla någon katalogs sökväg som ett argument, och efter det kommer programmet, när det körs, att ge listan över alla namn som finns i den aktuella katalogen som ett resultat i utdata. Titta på följande exempelprogram för att förstå implementeringen av denna metod:
Exempel 2:
Titta på följande Python-program där vi använde metoden os.listdir() utan något argument:
# 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)
Produktion:
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']
Som vi kan se skrivs en lista med namn på alla filer som finns i den aktuella filen där Python är installerad ut i utdata efter att programmet har körts.
bash för loop
Förklaring:
I det här programmet har vi utelämnat sökvägsparametern och får fortfarande listan med namn på alla filer som finns i den aktuella arbetskatalogen. Vi föredrar att använda den här metoden om vi vill få listan över alla filers namn från den aktuella arbetskatalogen. För i den här metoden behöver vi inte använda något argument eller definiera någon sökvägsvariabel, och därmed sparar den någon extra kodrad i vårt program och sparar vår tid.
Metod 2: Skriva ut filnamn från specificerad sökväg:
I den här metoden kan vi få listan över namn på alla filer som finns i en angiven katalog genom att tillhandahålla den angivna sökvägen till katalogen i listdir()-funktionen. Vi kan få sökvägen till katalogen från filens egenskaper alternativ, och sedan kan vi använda samma fil i programmet. Titta på följande exempelprogram för att förstå implementeringen av denna metod:
Exempel 3:
Titta på följande Python-program där vi använde os.listdir()-metoden med sökvägsargument:
# 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)
Produktion:
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']
Som vi kan se skrivs namnen på alla filer som finns i den angivna katalogen ut i programmets utdata.
Förklaring:
Efter att ha importerat os-modulen i programmet har vi först definierat sökvägen till katalogen där vi vill skriva ut listan med alla filnamn genom att initiera en sökvägsvariabel. Efter det använde vi den initierade sökvägsvariabeln i listdir()-metoden för att använda sökvägen som ett argument i funktionen. Slutligen använde vi en annan initierad variabel (listOfFileNames) inuti print-satsen för att skriva ut resultatet i utdata.
Slutsats
Vi lärde oss om listdir()-metoden för os-modulen i denna handledning och förstod vikten av denna funktion. Vi lär oss om syntaxen för denna funktion, och efter det lär vi oss metoderna för att använda den här funktionen. Till sist använde vi Python-programmet med listdir()-funktionen för att förstå implementeringen av varje metod.