logo

Python os.listdir() yöntemi

Bir dizinde (klasörde) kaç tane ve hangi dosyanın bulunduğunu bilmek istediğimiz hayatımızda pek çok örnekle karşılaşmışızdır. Veya bazen bir dosyayı aramamız gerekir ve adını biliyoruz ancak hangi klasörde bulunduğunu bilmiyoruz. Bu durumda bize kalan tek seçenek dosyayı hedef dizinde aramaktır.

Şimdi çoğumuz için düşünmek o kadar kolay görünüyor ki; sadece dizine gidip oraya bakmamız gerekiyor. Bu olası bir seçenektir, ancak bu seçenek yalnızca o dizinde yalnızca daha az sayıda dosya mevcut olduğunda işe yarar. Ancak o zaman bu dizini manuel olarak ziyaret edebilir ve orada bulunan dosyaları arayabiliriz. Ancak, çok sayıda dosya olması durumunda, hedef dizinde binlerce dosya bulunduğunu varsayalım. Bu durumda, binlerce dosyanın bulunduğu hedef dizinde belirli bir dosyanın bulunup bulunmadığını aramak çok uzun (hatta günler) süreceğinden bu seçenek çalışmayacaktır. Binlerce dosyanın bulunduğu bir dizinde aynı adı taşıyan bir dosyayı bulmamız gerekiyorsa yapmamız gereken şey gibi görünüyor.

Adı dosya gezgini aracılığıyla arayabiliriz, ancak bunu yaparsak, bu da çok zaman alacaktır, önceki seçenekte olduğu gibi değil ama evet, çok zaman. Bunun nedeni, dosya gezgininin dizinde bulunan her dosyayı taraması ve diskin tamamen taranması bitene kadar çok beklememiz gerektiğidir.

Peki ya hedef dizinde veya yolda bulunan tüm dosyaların adlarını zaten sağladığımızı söylersek. Ardından, belirtilen dosyanın hedeflenen yolda bulunup bulunmadığını kontrol etmek bizim için çok kolay olacak ve aynı zamanda hedef dizinde bulunan tüm dosyaların adlarını nereden almamız gerektiğini de gösteriyor.

Bir dizinde bulunan tüm dosyaların adlarının metin biçiminde bir listesi verilirse, o belirli dosyanın adını arama çubuğuna yazmamız yeterlidir. Ve dosyanın isimler listesinde olup olmadığını öğrenmek bir saniyenizi bile almayacaktır. Böylece bir dizinde veya yolda bulunan tüm dosyaların adlarının listesini yazdırabileceğimiz bir yönteme sahip olmanın ne kadar önemli olduğunu anlayabiliriz.

Python bize isim listesini yazdırabileceğimiz yöntemler sağlar ve bu yöntemlerden biri de 'os' modülünün listdir() işlevidir. Bu eğitimde bu listdir() yöntemini öğreneceğiz ve bunu bir Python programında belirtilen yolda bulunan tüm dosyaların adlarının bir listesini yazdırmak için kullanacağız.

normal formlar

Python'da os.listdir() Yöntemi

listdir() işlevi os modülü tarafından sağlanan bir işlevdir ve bu işlevi kullanarak belirtilen yolda bulunan tüm dosyaların adlarının bir listesini yazdırabiliriz. Geçerli çalışma dizininde (programın bulunduğu yerde) bulunan dosyaların listesini yazdırmak istiyorsak listdir() yöntemi de kullanılabilir. Belirli bir dizinde bulunan tüm dosyaların adlarını almamız gerektiğinde listdir() yöntemini kullanabiliriz.

os.listdir() işlevinin sözdizimi:

Os modülündeki listdir() fonksiyonunun kullanımına ilişkin sözdizimi aşağıdadır:

 >> os.listdir(pathSpecified) 

Parametreler:

Yukarıda verilen sözdiziminde görebileceğimiz gibi, sadece listdir() yönteminin içinde bir argüman verdik. listdir() işlevi aşağıdaki yol parametresini alır:

    Belirtilen yol:Burada pathSpecified değişkeni, tüm dosyaların adını bilmek istediğimiz yerden hedeflenen dizinin yolunu temsil eder. Bu, listdir() işlevindeki isteğe bağlı bir argümandır ve eğer işlevin içinde belirli bir yol sağlamazsak, o zaman geçerli çalışma dizinindeki tüm dosya adlarını yazdıracaktır.

İade türü:

listdir() işlevinin dönüş türü, belirtilen dizinde bulunan tüm dosyaların adlarının bir listesini döndürdüğü için 'list'tir.

os.listdir() Yöntem: Uygulama:

Listdir() fonksiyonunun çalışmasını ve uygulanmasını anlamak için, onu örnek bir programda kullanacağız ve dosya adlarının listesini buradan yazdıracağız. listdir() fonksiyonunun uygulama kısmını aşağıdaki iki kısma ayırdık:

  1. Geçerli çalışma dizininden dosya adlarını yazdırma
  2. Belirtilen yoldan dosya adlarını yazdırma

Her kategori için örnek bir program kullanacağız ve her yöntemdeki dosya adlarını alacağız.

Yöntem 1: Geçerli Çalışma Dizininden Dosya Adlarını Yazdırma:

Bu yöntemde, os modülünün başka bir işlevini, yani getcwd() işlevini kullanarak, geçerli çalışma dizinindeki dosya adlarının listesini yazdıracağız. Bu yöntemin uygulanmasını anlamak için aşağıdaki örnek programa bakın:

Örnek 1:

os.listdir() yöntemini yol argümanıyla birlikte kullandığımız aşağıdaki Python programına bakın:

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

Çıktı:

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

Gördüğümüz gibi, mevcut çalışma dizinimizde bulunan tüm dosyaların adları programın çıktısında yazdırılmaktadır.

Java'da sınıf ve nesne

Açıklama:

Os modülünü programa aktardıktan sonra, geçerli çalışma dizininin yolunu bulmak için getcwd() fonksiyonunu kullandık. 'pathSpecified' adında bir değişken başlattık ve mevcut çalışma dizininin yolunu bu değişkende sakladık. Bundan sonra, bu değişkendeki tüm dosyaların adını saklamak için başka bir başlatılan değişkende, yani listOfFileNames'de listdir() işlevini kullandık. Listdir() fonksiyonunda argüman olarak mevcut çalışma yolu için başlatılan değişkeni sağladık ve son olarak print ifadesini kullanarak çıktıdaki tüm isimlerin listesini yazdırdık.

Programımızda başka bir işlevi kullanmak istemiyorsak, tüm dosya adlarını programın bulunduğu geçerli dizinden de alabiliriz. Herhangi bir dizinin yolunu argüman olarak sağlamak yerine listdir() fonksiyonunu bırakmamız gerekiyor ve bundan sonra program çalıştırıldığında çıktıda sonuç olarak geçerli dizinde bulunan tüm isimlerin listesini verecektir. Bu yöntemin uygulanmasını anlamak için aşağıdaki örnek programa bakın:

Örnek 2:

os.listdir() yöntemini herhangi bir argüman olmadan kullandığımız aşağıdaki Python programına bakın:

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

Çıktı:

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

Gördüğümüz gibi, Python'un kurulu olduğu mevcut dosyada bulunan tüm dosyaların adlarının bir listesi, program çalıştırıldıktan sonra çıktıya yazdırılıyor.

döngü için bash

Açıklama:

Bu programda, yol parametresini atladık ve hâlâ geçerli çalışma dizininde bulunan tüm dosyaların adlarının listesini alıyoruz. Geçerli çalışma dizinindeki tüm dosya adlarının listesini almak istiyorsak bu yöntemi kullanmayı tercih edeceğiz. Çünkü bu yöntemde herhangi bir argüman kullanmamıza veya herhangi bir yol değişkeni tanımlamamıza gerek kalmıyor ve bu sayede programımızda fazladan kod satırı tasarrufu sağlıyor ve zaman kazandırıyor.

Yöntem 2: Dosya Adlarını Belirtilen Yoldan Yazdırma:

Bu yöntemde, listdir() fonksiyonu içerisinde dizinin belirtilen yolunu sağlayarak, belirtilen dizinde bulunan tüm dosyaların adlarının listesini alabiliriz. Dosyanın özellikler seçeneğinden dizinin yolunu alabiliriz ve ardından aynı dosyayı programda kullanabiliriz. Bu yöntemin uygulanmasını anlamak için aşağıdaki örnek programa bakın:

Örnek 3:

os.listdir() yöntemini yol argümanıyla birlikte kullandığımız aşağıdaki Python programına bakın:

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

Çıktı:

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

Gördüğümüz gibi, belirtilen dizinde bulunan tüm dosyaların adları programın çıktısına yazdırılmaktadır.

Açıklama:

Os modülünü programa aktardıktan sonra ilk olarak bir yol değişkeni başlatarak tüm dosya adlarının listesini yazdırmak istediğimiz dizinin yolunu tanımladık. Bundan sonra, yolu fonksiyonda argüman olarak kullanmak için listdir() yönteminin içindeki başlatılan yol değişkenini kullandık. Son olarak çıktıdaki sonucu yazdırmak için print ifadesinin içinde başka bir başlatılmış değişken (listOfFileNames) kullandık.

Çözüm

Bu dersimizde os modülünün listdir() metodunu öğrendik ve bu fonksiyonun önemini anladık. Bu fonksiyonun sözdizimini öğreniyoruz ve ardından bu fonksiyonu kullanma yöntemlerini öğreniyoruz. Son olarak, her yöntemin uygulanmasını anlamak için Python programını listdir() işleviyle birlikte kullandık.