Merhaba arkadaşlar, bugün kendi arama motorumuzu yazacağız. Bu sayede arama motorlarının çalışma mantığını anlayacak ve Windows’un kendi arama motorundan çok daha hızlı bir arama motoruna sahip olacaksınız. Yazacağınız arama motoru bilgisayar içerisinde dosya ararken kullanılabilecek türden bir program olacak. Programın çalışma mantığı belirli bir kelimeyle veya harfle dosya aramak olacak.Temel anlamda gerekli modülleri ve fonksiyonları gösterip yazacağız. Programı güncelleyip geliştirmek size kalmış.
import os
Bilgisayar içinde bulunan belirli bir yol altındaki dosyalara teker teker erişmek için kullanacağımız fonksiyonlara sahip os modülünü programımıza ekliyoruz.
kontrol = 1
aranacak = input ("Aranacak kelime")
while kontrol:
path_ = input("Dosya nerede aranacak?")
if os.path.exists(path_):
kontrol = 0
else:
print("Yol geçerli değil.")
Bu satırlarda aranacak dosyanın hangi yolda aranacağı belirleniyor.
Artık arama motorunun bel kemiğine geçebiliriz.
for roots, dirs, files in os.walk(path_):
for each_file in files:
if aranacak in str(each_file):
print(roots.replace("\\","/") +"/"+str(each_file))
Son yazılan kısmı satır satır inceleyelim.
1. Satır: Programın başında yüklediğimiz os modülü içerisinde bulunan walk class’ını kullanıyoruz. Bu bize bir alt satırda her bir dosyaya teker teker erişmemize olanak sağlıyor.
2. Satır: Bu satırda dosya havuzunda bulunan dosyalara teker teker erişiyoruz. Aynı işlemi root‘lara veya directory‘lere de uygulayabilirsiniz.
3. Satır: Bu satırda aranacak kelimenin dosya isminde bulunup bulunmadığı kontrol ediliyor.
4. Satır: Eğer aranan kelime dosya isminde var ise dosyanın yolu ve dosya ismi ekrana yazdırılıyor. Bu da kullanıcıya dosyaya kolay erişme imkanı sunuluyor.
os modülü son derece geniş bir modüldür. os modülünü etkileşimli kabukta import ettikten sonra dir(os) yazarak altında bulunan metodlara erişebilirsiniz. os modülü altında bulunan metodlardan birkaç örnek verelim.
os.chdir() | Çalışılan yolu değiştirir. |
os.chmod() | Herhangi bir dosyanın erişim iznini değiştirir. |
os.getcwd() | İçinde bulunan yolu string olarak döndürür. |
os.getcwdb() | İçinde bulunan yolu byte olarak döndürür. |
os.listdir() | Bir yol altında bulunan klasörleri listeler. |
os.mkdir() | Klasör oluşturmaya yarar. |
Bir sonraki yayında görüşmek üzere. Sevgiler, saygılar sunarım.
Yorum Yap