logo

Metoda os.listdir() w Pythonie

Jest całkiem możliwe, że spotkaliśmy się w naszym życiu z wieloma przypadkami, w których chcemy wiedzieć, ile i jakie pliki znajdują się w katalogu (folderze). Czasem też musimy poszukać pliku i znamy jego nazwę, ale nie wiemy, w którym folderze się on znajduje. W takim wypadku pozostaje nam jedynie poszukać pliku w katalogu docelowym.

Wielu z nas wydawałoby się tak łatwe do myślenia; musimy po prostu udać się do katalogu i tam zajrzeć. Jest to możliwa opcja, ale ta opcja będzie działać tylko wtedy, gdy w tym katalogu znajduje się tylko mniejsza liczba plików. Dopiero wtedy możemy ręcznie odwiedzić ten katalog i poszukać znajdujących się tam plików. Ale co w przypadku dużej liczby plików, powiedzmy, że w katalogu docelowym znajdują się tysiące plików. W takim przypadku ta opcja nie będzie działać, ponieważ wyszukiwanie, czy określony plik znajduje się w katalogu docelowym, w którym znajdują się tysiące plików, zajmie bardzo dużo czasu (nawet wiele dni). Wygląda na to, co powinniśmy zrobić, jeśli musimy znaleźć plik o jego nazwie w katalogu zawierającym tysiące plików.

Możemy wyszukać nazwę za pomocą eksploratora plików, ale jeśli to zrobimy, również zajmie to dużo czasu, nie jak w poprzedniej opcji, ale tak, dużo czasu. Dzieje się tak, ponieważ eksplorator plików przeskanuje każdy plik znajdujący się w katalogu i musimy długo czekać, aż zakończy się pełne skanowanie dysku.

Ale co, jeśli powiemy, że podaliśmy już nazwy wszystkich plików znajdujących się w docelowym katalogu lub ścieżce. Wtedy bardzo łatwo będzie nam sprawdzić, czy określony plik znajduje się w docelowej ścieżce, a także pokaże, skąd musimy uzyskać nazwy wszystkich plików znajdujących się w katalogu docelowym.

Jeśli otrzymamy listę nazw wszystkich plików znajdujących się w katalogu w formie tekstowej, wystarczy wpisać nazwę tego konkretnego pliku w pasku wyszukiwania. A wtedy sprawdzenie, czy plik znajduje się na liście nazw, nie zajmie sekundy. Dlatego rozumiemy, jak ważne jest posiadanie metody, dzięki której możemy wydrukować listę nazw wszystkich plików znajdujących się w katalogu lub ścieżce.

Python udostępnia nam takie metody, za pomocą których możemy wydrukować listę nazw, a jedną z takich metod jest funkcja listdir() modułu „os”. W tym samouczku nauczymy się tej metody listdir() i użyjemy jej w programie w języku Python do wydrukowania listy nazw wszystkich plików znajdujących się w określonej ścieżce.

kliknij js

Metoda os.listdir() w Pythonie

Funkcja listdir() jest funkcją udostępnianą przez moduł os i za pomocą tej funkcji możemy wydrukować listę nazw wszystkich plików znajdujących się w podanej ścieżce. Metodę listdir() można również zastosować, jeśli chcemy wydrukować listę plików znajdujących się w bieżącym katalogu roboczym (w którym znajduje się program). Metody listdir() możemy użyć zawsze, gdy wymagane jest uzyskanie nazw wszystkich plików znajdujących się w określonym katalogu.

Składnia funkcji os.listdir():

Poniżej znajduje się składnia użycia funkcji listdir() z modułu os:

 >> os.listdir(pathSpecified) 

Parametry:

Jak widać z powyższej składni, argument podaliśmy jedynie wewnątrz metody listdir(). Funkcja listdir() przyjmuje następujący parametr ścieżki:

    Określona ścieżka:Tutaj zmienna pathSpecified reprezentuje ścieżkę docelowego katalogu, z którego chcemy poznać nazwy wszystkich plików. Jest to opcjonalny argument funkcji listdir() i jeśli nie podamy określonej ścieżki wewnątrz funkcji, wyświetli ona wszystkie nazwy plików z bieżącego katalogu roboczego.

Typ zwrotu:

Typ zwracany przez funkcję listdir() to „list”, ponieważ zwraca ona listę nazw wszystkich plików znajdujących się w określonym katalogu.

os.listdir() Metoda: Implementacja:

Aby zrozumieć działanie i implementację funkcji listdir(), użyjemy jej w przykładowym programie i wydrukujemy z niej listę nazw plików. Część implementacyjną funkcji listdir() podzieliliśmy na dwie następujące części:

  1. Drukowanie nazw plików z bieżącego katalogu roboczego
  2. Drukowanie nazw plików z określonej ścieżki

Użyjemy przykładowego programu dla każdej kategorii i uzyskamy nazwy plików w każdej metodzie.

Metoda 1: Drukowanie nazw plików z bieżącego katalogu roboczego:

W tej metodzie wydrukujemy listę nazw plików z bieżącego katalogu roboczego, korzystając z innej funkcji modułu os, czyli funkcji getcwd(). Aby zrozumieć implementację tej metody, spójrz na poniższy przykładowy program:

Przykład 1:

Spójrz na następujący program w Pythonie, w którym użyliśmy metody os.listdir() z argumentem 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) 

Wyjście:

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

Jak widzimy, nazwy wszystkich plików znajdujących się w naszym bieżącym katalogu roboczym są wypisywane na wyjściu programu.

Wyjaśnienie:

Po zaimportowaniu modułu os do programu skorzystaliśmy z funkcji getcwd(), aby uzyskać ścieżkę do bieżącego katalogu roboczego. Zainicjowaliśmy zmienną o nazwie „pathSpecified” i zapisaliśmy w niej ścieżkę do bieżącego katalogu roboczego. Następnie użyliśmy funkcji listdir() w innej zainicjowanej zmiennej, tj. listOfFileNames, aby zapisać nazwy wszystkich plików w tej zmiennej. Podaliśmy zainicjalizowaną zmienną dla bieżącej ścieżki roboczej jako argument w funkcji listdir(), a na koniec wydrukowaliśmy listę wszystkich nazw na wyjściu za pomocą instrukcji print.

Jeśli nie chcemy używać w naszym programie żadnej innej funkcji, to możemy też pobrać wszystkie nazwy plików z bieżącego katalogu, w którym znajduje się program. Musimy po prostu opuścić funkcję listdir() zamiast podawać ścieżkę dowolnego katalogu jako argument, a następnie program po uruchomieniu wyświetli w wyniku listę wszystkich nazw obecnych w bieżącym katalogu. Aby zrozumieć implementację tej metody, spójrz na poniższy przykładowy program:

Jak znaleźć ukryte aplikacje na Androidzie

Przykład 2:

Spójrz na następujący program w Pythonie, w którym użyliśmy metody os.listdir() bez żadnego 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) 

Wyjście:

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

Jak widzimy, po wykonaniu programu na wyjściu wyświetlana jest lista nazw wszystkich plików znajdujących się w bieżącym pliku, w którym zainstalowany jest Python.

Pythona lub

Wyjaśnienie:

W tym programie pominęliśmy parametr path i nadal otrzymaliśmy listę nazw wszystkich plików znajdujących się w bieżącym katalogu roboczym. Będziemy woleć używać tej metody, jeśli chcemy uzyskać listę nazw wszystkich plików z bieżącego katalogu roboczego. Ponieważ w tej metodzie nie musimy używać żadnych argumentów ani definiować żadnej zmiennej ścieżki, dzięki czemu oszczędzamy dodatkową linijkę kodu w naszym programie i oszczędzamy nasz czas.

Metoda 2: Drukowanie nazw plików z określonej ścieżki:

W tej metodzie możemy uzyskać listę nazw wszystkich plików znajdujących się w określonym katalogu, podając określoną ścieżkę do katalogu w funkcji listdir(). Ścieżkę katalogu możemy uzyskać z opcji właściwości pliku, a następnie możemy użyć tego samego pliku w programie. Aby zrozumieć implementację tej metody, spójrz na poniższy przykładowy program:

Przykład 3:

Spójrz na następujący program w Pythonie, w którym użyliśmy metody os.listdir() z argumentem 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) 

Wyjście:

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

Jak widzimy, na wyjściu programu wypisane są nazwy wszystkich plików znajdujących się w podanym katalogu.

Wyjaśnienie:

Po zaimportowaniu modułu os do programu, najpierw zdefiniowaliśmy ścieżkę katalogu, z którego chcemy wydrukować listę wszystkich nazw plików, inicjując zmienną path. Następnie użyliśmy zainicjowanej zmiennej ścieżki wewnątrz metody listdir(), aby użyć ścieżki jako argumentu funkcji. Na koniec użyliśmy innej zainicjowanej zmiennej (listOfFileNames) wewnątrz instrukcji print, aby wydrukować wynik na wyjściu.

Wniosek

W tym samouczku dowiedzieliśmy się o metodzie listdir() modułu os i zrozumieliśmy znaczenie tej funkcji. Poznajemy składnię tej funkcji, a następnie poznajemy metody korzystania z tej funkcji. Na koniec użyliśmy programu w języku Python z funkcją listdir(), aby zrozumieć implementację każdej metody.