logo

Python метод os.listdir().

Напълно възможно е да сме срещали толкова много случаи в живота си, в които искаме да знаем колко и какви файлове присъстват в дадена директория (папка). Или понякога трябва да търсим файл и знаем името му, но не знаем в коя папка се намира. В този случай единствената опция, която ни остава, е да потърсим файла в целевата директория.

Сега би изглеждало толкова лесно за много от нас да мислят; просто трябва да отидем в директорията и да погледнем там. Това е възможна опция, но тази опция ще работи само когато имаме само по-малък брой файлове в тази директория. Само тогава можем да посетим тази директория ръчно и да потърсим наличните там файлове. Но какво в случая, когато голям брой файлове, нека просто кажем хиляди файлове присъстват в целевата директория. В такъв случай тази опция няма да работи, защото ще отнеме много време (дори много дни) за търсене дали конкретен файл присъства в целевата директория, където присъстват хиляди файлове. Изглежда какво трябва да направим, ако трябва да намерим файл с неговото име в директория с хиляди файлове.

Можем да търсим името чрез File Explorer, но ако го направим, това също ще отнеме много време, не както в предишния вариант, но да, много време. Това е така, защото файловият изследовател ще сканира всеки файл, присъстващ в директорията, и трябва да чакаме толкова дълго, докато приключи пълното сканиране на диска.

Но какво ще стане, ако кажем, че вече сме предоставили имената на всички файлове, присъстващи в целевата директория или път. Тогава за нас ще бъде много лесно да проверим дали посоченият файл присъства в целевия път и също така показва къде трябва да получим имената на всички файлове, присъстващи в целевата директория.

Ако ни бъде даден списък с имена на всички файлове, присъстващи в дадена директория в текстова форма, просто трябва да напишем името на този конкретен файл в лентата за търсене. И тогава едва ли ще отнеме секунда, за да разберете дали файлът присъства в списъка с имена или не. По този начин можем да разберем колко е важно да имаме метод, при който можем да отпечатаме списъка с имена на всички файлове, присъстващи в директория или път.

Python ни предоставя такива методи, при които можем да отпечатаме списъка с имена и един такъв метод е функцията listdir() на модула 'os'. Ще научим този метод listdir() в този урок и ще го използваме в програма на Python, за да отпечатаме списък с имена на всички файлове, присъстващи в посочения път.

мрежова топология

os.listdir() Метод в Python

Функцията listdir() е функция, предоставена от модула os и с помощта на тази функция можем да отпечатаме списък с имена на всички файлове, присъстващи в указания път. Методът listdir() също може да се използва, ако искаме да отпечатаме списъка с файлове, налични в текущата работна директория (където присъства програмата). Можем да използваме метода listdir() винаги, когато се изисква да получим имената на всички файлове в определена директория.

Синтаксис за функцията os.listdir():

Следва синтаксисът за използване на функцията listdir() от модула os:

 >> os.listdir(pathSpecified) 

Параметри:

Както можем да видим в дадения по-горе синтаксис, ние сме дали само аргумент в метода listdir(). функцията listdir() приема следния параметър на пътя:

    указан път:Тук променливата pathSpecified представлява пътя на целевата директория, откъдето искаме да знаем имената на всички файлове. Това е незадължителен аргумент във функцията listdir() и ако не предоставим определен път във функцията, тогава тя ще отпечата всички имена на файлове от текущата работна директория.

Тип връщане:

Типът на връщане за функцията listdir() е 'списък', тъй като връща списък с имена на всички файлове, налични в посочената директория.

os.listdir() Метод: Реализация:

За да разберем работата и изпълнението на функцията listdir(), ще я използваме в примерна програма и ще отпечатаме списъка с имена на файлове от нея. Разделихме частта за изпълнение на функцията listdir() на следните две части:

  1. Отпечатване на имена на файлове от текущата работна директория
  2. Отпечатване на имена на файлове от посочения път

Ще използваме примерна програма за всяка категория и ще получим имената на файловете във всеки метод.

Метод 1: Отпечатване на имена на файлове от текущата работна директория:

В този метод ще отпечатаме списъка с имена на файлове от текущата работна директория, като използваме друга функция на модула os, т.е. функцията getcwd(). Вижте следната примерна програма, за да разберете изпълнението на този метод:

Пример 1:

Вижте следната програма на Python, където използвахме метода os.listdir() с аргумент път:

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

Изход:

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

Както виждаме, имената на всички файлове, присъстващи в текущата ни работна директория, се отпечатват в изхода на програмата.

Обяснение:

След като импортирахме os модула в програмата, използвахме функцията getcwd(), за да получим пътя на текущата работна директория. Инициализирахме променлива с името 'pathSpecified' и съхранихме пътя на текущата работна директория в тази променлива. След това използвахме функцията listdir() в друга инициализирана променлива, т.е. listOfFileNames, за да съхраним името на всички файлове в тази променлива. Осигурихме инициализирана променлива за текущия работен път като аргумент във функцията listdir() и накрая отпечатахме списъка с всички имена в изхода, използвайки оператор за печат.

Ако не искаме да използваме друга функция в нашата програма, тогава можем също така да получим всички имена на файлове от текущата директория, в която се намира програмата. Просто трябва да оставим функцията listdir(), вместо да предоставим пътя на която и да е директория като аргумент, и след това програмата, когато се изпълни, ще даде списък с всички имена, присъстващи в текущата директория, като резултат в изхода. Вижте следната примерна програма, за да разберете изпълнението на този метод:

Пример 2:

arraylist методи

Вижте следната програма на Python, където използвахме метода os.listdir() без аргумент:

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

Изход:

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

Както виждаме, списък с имена на всички файлове, присъстващи в текущия файл, където е инсталиран Python, се отпечатва в изхода, след като програмата се изпълни.

управление на съхранена програма

Обяснение:

В тази програма сме пропуснали параметъра на пътя и все още получаваме списъка с имена на всички файлове, налични в текущата работна директория. Ще предпочетем да използваме този метод, ако искаме да получим списъка с имената на всички файлове от текущата работна директория. Тъй като в този метод не се налага да използваме никакъв аргумент или да дефинираме каквато и да е променлива на пътя и по този начин той спестява всеки допълнителен ред код в нашата програма и спестява нашето време.

Метод 2: Отпечатване на имена на файлове от зададен път:

В този метод можем да получим списъка с имена на всички файлове, присъстващи в определена директория, като предоставим посочения път на директорията във функцията listdir(). Можем да получим пътя на директорията от опцията за свойства на файла и след това можем да използваме същия файл в програмата. Вижте следната примерна програма, за да разберете изпълнението на този метод:

Пример 3:

Вижте следната програма на Python, където използвахме метода os.listdir() с аргумент път:

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

Изход:

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

Както виждаме, имената на всички файлове, присъстващи в указаната директория, се отпечатват в изхода на програмата.

Обяснение:

След като импортирахме os модула в програмата, първо сме дефинирали пътя на директорията, откъдето искаме да отпечатаме списъка с всички имена на файлове чрез инициализиране на променлива на пътя. След това използвахме инициализираната променлива на пътя в метода listdir(), за да използваме пътя като аргумент във функцията. И накрая, използвахме друга инициализирана променлива (listOfFileNames) в израза за печат, за да отпечатаме резултата в изхода.

Заключение

Научихме за метода listdir() на модула os в този урок и разбрахме важността на тази функция. Научаваме синтаксиса на тази функция и след това научаваме методите за използване на тази функция. Накрая използвахме програмата Python с функцията listdir(), за да разберем изпълнението на всеки метод.