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.