Dosyaları Desene Göre Bulmak İçin Python'un glob Modülü Nasıl Kullanılır
Python'daki glob
modülü, belirtilen bir desenle eşleşen dosyaları ve dizinleri bulmak için güçlü bir araçtır. Özellikle bir dizinde belirli uzantılara veya adlara sahip dosyaları aramanız gerektiğinde kullanışlıdır. Bu makale, dosyaları etkili bir şekilde bulmak için glob
modülünü kullanma konusunda size rehberlik edecektir.
glob
Modülüne Giriş
glob
modülü, Unix kabuk stili joker karakterleri kullanarak dosyaları ve dizinleri listelemenin bir yolunu sağlar. Bu, dosya aramaları, toplu işleme ve daha fazlası gibi görevler için yararlıdır. Modül, dosya adlarını desenlerle eşleştirmenize olanak tanıyan işlevler içerir ve bu da dosya yönetimini kolaylaştırır.
glob'un Temel Kullanımı
glob
modülünü kullanmak için, onu içe aktarmanız ve ardından bir desenle eşleşen dosyaları bulmak için glob.glob()
işlevini kullanmanız gerekir. Kullandığınız desenler, *
(herhangi bir sayıda karakterle eşleşir) ve ?
(tek bir karakterle eşleşir) gibi joker karakterleri içerebilir.
Örnekler
Belirli Bir Uzantıya Sahip Dosyaları Bulma
Örneğin, bir dizindeki .txt
uzantılı tüm dosyaları bulmak için şunu kullanabilirsiniz:
import glob
# Find all .txt files in the current directory
txt_files = glob.glob('*.txt')
print(txt_files)
Alt Dizin İçindeki Dosyaları Bulma
Belirli bir uzantıya sahip tüm dosyaları bir alt dizinde bulmak için, desende alt dizini belirtin:
import glob
# Find all .jpg files in the 'images' subdirectory
jpg_files = glob.glob('images/*.jpg')
print(jpg_files)
Joker Karakterlerin Kullanımı
Joker karakterler daha geniş bir dosya yelpazesini eşleştirmenize yardımcı olabilir. Örneğin, "report" ile başlayan tüm metin dosyalarını bulmak için:
import glob
# Find all files starting with 'report' and ending with .txt
report_files = glob.glob('report*.txt')
print(report_files)
Birden Fazla Uzantıya Sahip Dosyaları Bulma
Birden fazla joker karakter eşleşmesi içeren bir desen kullanarak birden fazla uzantıya sahip dosyaları bulmak için glob
komutunu da kullanabilirsiniz:
import glob
# Find all .txt and .md files
files = glob.glob('*.txt') + glob.glob('*.md')
print(files)
Gelişmiş Kullanım
Basit desenlere ek olarak, glob
modülü daha karmaşık desenleri destekler. Örneğin, dizinleri yinelemeli olarak aramak için **
gibi desenleri kullanabilirsiniz.
Tekrarlayan Arama
Tüm alt dizinlerdeki dosyaları yinelemeli olarak aramak için **
desenini recursive=True
bağımsız değişkeniyle birlikte kullanın:
import glob
# Find all .py files in the current directory and subdirectories
py_files = glob.glob('**/*.py', recursive=True)
print(py_files)
Çözüm
glob
modülü, Python'da dosyaları yönetmek için olmazsa olmaz bir araçtır ve desenleri kullanarak dosyaları kolayca aramanıza olanak tanır. Belirli dosya türleriyle çalışıyor, dizinlerde arama yapıyor veya karmaşık aramalar gerçekleştiriyor olun, glob
basit ve etkili bir çözüm sunar.