Dosya Yönetiminde Kullanılabilecek Utility Library'ler

Dosya Yönetiminde Kullanılabilecek Utility Library'ler

Dosya yönetimi için Python'da birçok utility library bulunmaktadır Bu kütüphaneler arasında Pathlib, dosya yolları ve isimleri için bir API sağlarken, Shutil dosya kopyalama, taşıma, silme ve isim değiştirme işlemlerini gerçekleştirir Zipfile farklı dosya tiplerinin nasıl sıkıştırılabileceği ve açılabileceği hakkında bilgi verirken, Glob dosya arama işlemlerinin nasıl yapılacağı hakkında bilgi sağlar Python'da dosya işlemleri için bazı built-in fonksiyonlar da bulunur Dosya yönetimi işlemleri için uygun kütüphaneyi seçerek, dosya işlemlerini hatasız ve hızlı bir şekilde gerçekleştirebilirsiniz

Dosya Yönetiminde Kullanılabilecek Utility Library'ler

Dosya yönetimi birçok yazılım projesinde temel bir gerekliliktir. Bu nedenle, dosyalara hızlı ve hatasız bir şekilde erişebilmek için utility library'leri kullanmak oldukça yaygındır. Bu kütüphaneler, dosya kopyalama, taşıma, silme, isim değiştirme ve benzeri işlemleri gerçekleştirmeyi kolaylaştırır.

Python'da dosya işlemleri için birçok farklı utility library bulunmaktadır. Pathlib, dosya yolları ve isimleri için bir API sağlar. Shutil, dosya kopyalama, taşıma, silme ve isim değiştirme işlemlerinin nasıl yapılabileceği hakkında bilgi verir. Zipfile, farklı dosya tiplerinin nasıl sıkıştırılabileceği ve açılabileceği hakkında bilgi sağlar. Glob, dosya arama işlemlerinin nasıl yapılacağı hakkında bilgi verir. OS, birçok farklı dosya işlemi için kullanılabilecek bazı farklı fonksiyonları içerir. Watchdog, belirli bir dizin üzerindeki dosyaların takibinin nasıl yapılacağı hakkında bilgi sağlar.

Bunların yanı sıra, Python'da dosya işlemleri için bazı built-in fonksiyonlar da bulunmaktadır. Bu fonksiyonlar, dosya okuma ve yazma işlemlerinde kullanılabilir. Örneğin, open() fonksiyonu dosya açma işlemlerinde kullanılırken, read() fonksiyonu dosya okuma işlemlerinde kullanılabilir. Write() fonksiyonu ise dosyaya yazma işlemlerinde kullanılabilir.


Pathlib

Pathlib, Python dilinde dosya ve dizin yolları işlemlerini gerçekleştiren bir utility kütüphanesidir. Bu kütüphane, dosya ve dizin yolları üzerinde işlem yapmak için bir dizi sınıf sunmaktadır. Bu sınıflar içerisinde Path adlı sınıf, uzantısı olmadan dosya ve dizin yollarını tasvir etmek için kullanılan temel yapı taşıdır.

Pathlib kütüphanesi, bir platformdan diğerine taşınan programlar için uygundur, çünkü farklı işletim sistemlerindeki dosya yolları farklı şekillerde ifade edilir. Bu kütüphane, kesin bir şekilde tanımlanmış yol bileşenleri kullanarak dosya yollarını işler ve böylece dosya yolu işlemlerinin taşınabilirliği garanti altına alınır.


Shutil

Python gibi programlama dillerinde, dosya işlemleri için bazı kütüphaneler kullanılır. Bu kütüphaneler sayesinde, dosya yönetimi için gerekli olan işlemler hızlı ve hatasız bir şekilde yapılabilir. Shutil kütüphanesi de Python'da mevcut olan bu dosya yönetim kütüphanelerinden biridir.

Shutil kütüphanesi, çeşitli dosya işlemlerini gerçekleştirmek için kullanılır. Bu işlemler arasında dosya kopyalama, taşıma, silme ve isim değiştirme yer alır. Yani, bu kütüphane sayesinde bir dosyayı kolayca başka bir klasöre veya diske kopyalayabilir, taşıyabilir veya silebilirsiniz. Ayrıca, dosyaların isimlerini değiştirebilirsiniz.

Bunun için öncelikle, shutil kütüphanesini programınıza dahil etmeniz gerekiyor. Daha sonra, dosya kopyalama işlemi için shutil.copy() fonksiyonunu kullanabilirsiniz. Bu fonksiyon, bir dosyanın kopyasını alır ve belirttiğiniz hedef klasöre kopyalar. Benzer şekilde, dosya taşıma, silme ve isim değiştirme işlemleri için de farklı fonksiyonlar mevcuttur.

Tablo olarak, shutil kütüphanesinde bulunan bazı işlemler şunlardır:

İşlem Fonksiyon
Dosya kopyalama shutil.copy()
Dosya taşıma shutil.move()
Dosya silme os.remove()
İsim değiştirme os.rename()

Yukarıdaki örneklerde görüldüğü gibi, dosya işlemleri için farklı kütüphaneler mevcuttur ve bu kütüphanelerin kullanımı oldukça kolaydır. Bu nedenle, ihtiyacınıza uygun olan kütüphaneyi seçerek, dosya yönetimi işlemlerinizi hızlı ve hatasız bir şekilde gerçekleştirebilirsiniz.


Zipfile

Zipfile kütüphanesi, Python'da dosyaların sıkıştırılması ve açılması için kullanılan bir utility library'dir. Bu kütüphane ile farklı dosya tipleri, özellikle de .zip formatındaki dosyalar, açılabilir ve sıkıştırılabilir. Ayrıca bu kütüphane, Python'un standart kütüphanesinin bir parçasıdır.

Zipfile kütüphanesi kullanılarak, sıkıştırılmış bir dosya açılabilir ve içindeki dosyalar görüntülenebilir. Bu işlem için öncelikle sıkıştırılmış dosyanın yolu belirtilir ve zip dosyası açılır. Daha sonra dosyaların içerisinde gezinmek ve gerektiğinde açmak için birçok fonksiyon mevcuttur.

Aynı şekilde, dosyaları .zip formatında sıkıştırmak için de Zipfile kütüphanesi kullanılabilir. Bu işlem için öncelikle zip dosyasının adı ve oluşturulacak dosyaların listesi belirtilir. Daha sonra dosyalar sıkıştırılır ve istenilen klasöre kaydedilir.

Zipfile kütüphanesi ile ilgili olarak aşağıdaki gibi bir örnek kullanım verilebilir:

Example Code Explanation
import zipfile Zipfile kütüphanesinin import edilmesi
with zipfile.ZipFile('example.zip', 'r') as zip_file: 'example.zip' dosyasının açılması ve zip dosyası objesinin oluşturulması
 zip_file.printdir() Dosya listesinin yazdırılması
 zip_file.extractall('./example') Dosyaların belirtilen klasöre çıkarılması

Bu örnekte, 'example.zip' dosyası açılmış ve dosya listesi yazdırılmıştır. Daha sonra dosyaların açılıp belirtilen klasöre çıkarılması için extractall() fonksiyonu kullanılmıştır.


Glob

Glob kütüphanesi, dosya arama ve eşleştirme işlemlerinin Python'da nasıl yapılabileceği konusunda oldukça yararlı bir utility library'dir. Bu kütüphane ile, belirli bir dizinde yer alan tüm dosyaların listesi, belirli bir desene göre eşleşen dosyaların listesi veya belirli bir dosya uzantısına sahip olan dosyaların listesi gibi işlemler yapılabilmektedir.

Glob'ün kullanımı oldukça basittir. İlk olarak, glob kütüphanesini Python'da import etmemiz gerekmektedir. İmport işlemi şu şekilde gerçekleştirilebilir:

import glob

Ardından, belirli bir desene göre dosya arama işlemini gerçekleştirmek istediğimiz dizinin tam yolunu belirtiyoruz:

files = glob.glob('/path/to/search/*')

Bu örnekte, "/path/to/search/" dizininde yer alan tüm dosyaların listesi "files" değişkenine aktarılır. Yıldız işareti, belirli bir desene göre dosya eşleştirme işlemini gerçekleştirmek için kullanılmaktadır.

Ayrıca, dosya uzantısı gibi belirli bir kriteri sağlayan dosyaların listesi de aşağıdaki örnekte görüldüğü gibi elde edilebilir:

txt_files = glob.glob('/path/to/search/*.txt')

Bu örnekte, "/path/to/search/" dizininde yer alan ".txt" uzantısına sahip olan tüm dosyaların listesi "txt_files" değişkenine aktarılır.

Python glob kütüphanesi, dosya yönetimi projelerinde dosya arama ve işleme işlemlerinin hızlı ve kolay bir şekilde gerçekleştirilebilmesi için oldukça yararlıdır.


OS

Python'da dosya işlemlerinde kullanılan kütüphanelerden biri de os kütüphanesidir. Bu kütüphane, farklı dosya işlemlerinde kullanılan farklı fonksiyonlar sunar. İşletim sisteminin farklı özelliklerinden faydalanmak için de kullanılabilir.

Bu kütüphanede bulunan bazı önemli fonksiyonlar şunlardır:

Fonksiyon Açıklama
os.getcwd() Mevcut çalışma dizinini verir.
os.chdir(path) Çalışma dizinini değiştirir.
os.listdir(path) Bir dizindeki tüm dosyaları ve klasörleri listeler.
os.mkdir(path) Yeni bir klasör oluşturur.
os.rmdir(path) Bir klasörü siler. Klasör boş olmalıdır.
os.remove(path) Bir dosyayı siler.

Bunlar sadece os kütüphanesinde bulunan bazı fonksiyonlar olsa da, dosya işlemlerinde çok yararlı olabilirler. Örneğin, çalışma dizinini değiştirerek başka bir dizindeki dosyaları işleyebilirsiniz.

Diğer taraftan, os kütüphanesi, her işletim sisteminde farklı işlem özellikleri sunar. Dolayısıyla, farklı işletim sistemleri için farklı kodlar yazmak gerekir. Bu nedenle, bir proje birden fazla işletim sistemi için tasarlanmışsa, bu kütüphanenin kullanımı oldukça önemlidir.


Watchdog

Python'da bir dizinde bulunan dosyaların takibinin yapılabilmesi için watchdog kütüphanesi kullanılabilir. Bu kütüphane, belirlediğiniz bir dizindeki herhangi bir değişikliği takip edebilir, böylece dosyaların güncellenmesi veya silinmesi gibi değişiklikler hakkında otomatik olarak uyarı alabilirsiniz.

Bu kütüphane, farklı platformlarda çalışabilen bir arka planda çalışan bir hizmet sağlar. Watchdog, geleneksel bir for döngüsü yerine bir işlemci veya CPU zamanı israfı olmadan dosya sistemine göz kulak olabilecek bir yapının kullanılmasını sağlar.

Watchdog kütüphanesi, Python'un os modülü ile birlikte kullanılabilir. Bu sayede os modülü içinde bulunan fonksiyonlar da kullanılabilmektedir. Watchdog kütüphanesinin kullanımı oldukça kolaydır ve birçok örneği de mevcuttur. Bu sayede herhangi bir sorun yaşamadan bu kütüphaneyi kullanarak dosyaların takibini yapabilirsiniz.


Typeshed

Typeshed kütüphanesi, Python'da statik tipleri belirlemek için kullanılan bir utility library'dir. Bu kütüphane, Python standard library'de yer alan modülleri de dahil olmak üzere, Python için yapılmış tüm kütüphanelere statik tipler sağlayan çıktı dosyaları içermektedir.

Typeshed kütüphanesinin import edilmesi oldukça kolaydır. Kütüphaneyi kullanmak için öncelikle pip veya benzeri bir paket yükleme aracı ile yüklenmesi gerekmektedir. Daha sonra, Python script'i içinde “import typeshed” satırı ile kütüphaneyi import etmek yeterlidir.

Bu kütüphanenin kullanımı öncelikle statik tiplerin belirlenmesi konusunda büyük kolaylık sağlar. Özellikle büyük ölçekli projelerde etkili bir şekilde kullanılabilir. Typeshed ayrıca, kodun okunabilirliğini artırmak ve hata ayıklama sürecini kolaylaştırmak için de kullanılabilir.

Aşağıdaki örnek kod parçası, typeshed kütüphanesinin ne kadar kullanışlı olduğunu göstermektedir:

        def greet(name: str) -> str:        return "Hello, " + name    

Bu basit fonksiyon, name adında bir string değişken alıp, "Hello, " adındaki string ile birleştirerek yeni bir string ile döndürür. Burada dikkat edilmesi gereken nokta, name parametresine tip olarak str tanımlandığıdır. Bu tip belirleme işlemi, typeshed kütüphanesi sayesinde yapılmıştır.


mypy

mypy, Python dosyalarında kullanılan değişkenlerin ve kütüphanelerin türlerini belirlemek için kullanılan bir kütüphanedir. Bu sayede programcılar, programlarında olası hataları önceden tespit edebilirler.

mypy, tip kontrolüne dayalı bir dildir. Bu belirteç, kodunuzda hangi değişkenlerin hangi türe sahip olabileceğini gösterir. Bu tür hatalar, kodunuz çalıştırılmadan önce tespit edilebilir ve kod kalitesini artırabilir.

mypy kütüphanesi, Python 2 ve Python 3 için kullanılabilir. Kurulumu oldukça kolaydır; pip kullanarak kurulabilirsiniz. Daha sonra, programınızın herhangi bir Python dosyasına mypy komutunu kullanarak uygulama yapabilirsiniz.

mypy kütüphanesi, aynı zamanda hataların neden kaynaklandığını açıklayarak, kodu daha kolay anlaşılabilir kılar. Bu sayede, geliştirme sürecinde işbirliği yapılan diğer geliştiriciler, kodunuzda olası hataları daha hızlı tespit edebilirler.

  • Birinci örnek:
    Bir metin dosyasındaki her bir satırı okuyun ve str veri tipi ile eşleştirin:
  • Dosya adı: veriler.txt veri.txt dosyası içeriği:
                            123                        abc                        34e                    
            with open('veriler.txt') as dosya:            for satir in dosya:                #satır str veri tipinde                print(satir + 'Türü:', type(satir))        
  • İkinci örnek:
    Bir öğrenci sınıfı listesi içeren bir JSON dosyasının okunup, doğru veri tipiyle eşleştirilmesi:
  • Dosya adı: ogrenciler.json ogrenciler.json dosyası içeriği:
                            {                            "öğrenciler":[                                {                                    "isim":"Ahmet",                                    "yaş":14,                                    ":cinsiyet":"erkek"                                },                                {                                    "isim":"Ayşe",                                    "yaş":13,                                    "cinsiyet":"kadın"                                }                            ]                        }                    
            import json        with open("ogrenciler.json", "r") as file:            ogrenciler = json.load(file)        for ogrenci in ogrenciler['öğrenciler']:            isim = ogrenci.get('isim', "")            yaş = ogrenci.get('yaş', -1)            cinsiyet = ogrenci.get('cinsiyet', "")            #işlem yapılacak kod        

Python Built-in Functions

Python, dosya işlemlerinde kullanılmak üzere birçok farklı built-in fonksiyona sahiptir. Bu fonksiyonlar, dosya okuma, yazma ve düzenleme gibi işlemleri gerçekleştirmek için kullanılabilir. Ayrıca, bu fonksiyonlar dosyanın özelliklerini değiştirmek için de kullanılabilir.

Bunlardan en yaygın olanı, dosya açmak için kullanılan 'open()' fonksiyonudur. Bu fonksiyon, 'r' (okuma), 'w' (yazma) ve 'a' (ekleme) modları ile kullanılabilir. Ayrıca, dosya açtıktan sonra 'with' bloğu kullanarak otomatik olarak dosyayı kapatabilirsiniz.

Fonksiyon Açıklama
read() Dosyayı okur ve içeriğini döndürür.
readline() Dosyanın bir satırını okur ve döndürür.
write() Dosyaya veri yazar.
writelines() Belirtilen listeyi dosyaya yazar.
seek() Dosya okuma konumunu değiştirir.
tell() Dosya okuma konumunu döndürür.

Ayrıca, 'os' kütüphanesi de dosya işlemlerinde sıkça kullanılan bir diğer built-in fonksiyonlar serisine sahiptir. Bu fonksiyonlardan bazıları 'os.remove()', 'os.rename()' ve 'os.path.exists()' gibi işlemleri gerçekleştirirler.

Python'da dosya işlemleri yaparken, olası hataları ve hata kodlarını yakalamak için 'try' ve 'except' bloklarını kullanabilirsiniz. Bu, dosyalarla çalışırken oluşan olası hataları önceden tahmin edebilmenizi ve bu sorunların çözülmesine yardımcı olur.


open()

'open()' fonksiyonu, Python'da dosya işlemlerinde kullanılan en temel fonksiyonlardan biridir. Bu fonksiyon, dosya ismini ve dosya modunu kullanarak dosya açma işlemini gerçekleştirir.

Dosya modları, dosya açıldığında gerçekleştirilebilecek işlemleri belirler. Bazı dosya modları şunlardır:

  • 'r' - Bir dosyayı okumak için açar. Dosya bulunamazsa hata verir.
  • 'w' - Bir dosyayı yazmak için açar. Dosya bulunamazsa oluşturulur, varsa üzerine yazar.
  • 'x' - Bir dosyayı yazmak için sıfırdan oluşturur ancak dosya mevcutsa hata verir.
  • 'a' - Bir dosyayı yazmak için açar. Yeni verileri dosyanın sonuna ekler.
  • 'b' - Binari modda açar.

'with' ifadesi, dosya işlemi tamamlandıktan sonra dosyayı otomatik olarak kapatır. Bu, kod yazarken zaman kazandırır ve aynı zamanda kaynakların boşa gitmesini önler.

Örneğin:

Dosya AdıDosya İçeriği
ornek.txtMerhaba Dünya!

Aşağıdaki örnek, 'ornek.txt' dosyasını 'r' modunda açar ve dosyanın içeriğini okur:

with open('ornek.txt', 'r') as f:    dosya_icerigi = f.read()print(dosya_icerigi)

Bu örnekte, 'with' ifadesi ile dosya otomatik olarak kapatılacak ve dosya içeriği 'dosya_icerigi' değişkenine atanacaktır. Ardından, 'print()' fonksiyonu kullanarak dosya içeriği ekrana yazdırılır.


read()

Dosya okuma işlemi, doğru verilerin elde edilebilmesi için oldukça önemlidir. Python'da dosya açma işlemi open() fonksiyonu ile yapılır. Dosyanın açılması sonrasında verilerin alınması için read() fonksiyonu kullanılır.

read() fonksiyonu, dosyanın tamamını ya da belirli bir kısmını okumak için kullanılabilir. Dosya okuma işleminde farklı parametreler de kullanılabilmektedir. Örneğin dosyanın tümünün okunması için şu şekilde bir kod kullanılabilir:

with open('dosya.txt', 'r') as f:    data = f.read()

Bu kod sayesinde 'dosya.txt' isimli dosya açılır ve tüm içeriği 'data' değişkenine atanır. Bazı durumlarda dosyanın tamamının okunmasına gerek olmadığından, belirli bir kısmının okunması gerekebilir. Bu durumda read() fonksiyonunun parametreleri kullanılabilir.

Örneğin dosyanın ilk 10 karakterinin okunması için şu şekilde bir kod kullanılabilir:

with open('dosya.txt', 'r') as f:    data = f.read(10)

Bu kod sayesinde 'dosya.txt' isimli dosya açılır ve ilk 10 karakteri 'data' değişkenine atanır. Ayrıca dosya okuma işlemi sırasında satır atlamak da gerekebilir. Bu durumda readline() fonksiyonu kullanılır.

Örneğin dosyanın ilk satırının okunması için şu şekilde bir kod kullanılabilir:

with open('dosya.txt', 'r') as f:    data = f.readline()

Bu kod sayesinde 'dosya.txt' isimli dosya açılır ve ilk satırı 'data' değişkenine atanır. Ancak eğer dosya içerisinde birden fazla satır varsa, sıradaki satırı okumak için aynı kod blokuna tekrar çağrı yapılmalıdır.

Son olarak, dosya okuma işlemi sırasında tüm satırların liste halinde alınması gerektiğinde readlines() fonksiyonu kullanılır. Bu fonksiyon, dosya içerisindeki her bir satırı bir liste elemanı olarak döndürür.

with open('dosya.txt', 'r') as f:    data = f.readlines()

Bu kod sayesinde 'dosya.txt' isimli dosya açılır ve her bir satır bir elemanı olan bir liste 'data' değişkenine atanır.


write()

Dosya yazma işlemi, dosya içerisine yeni verilerin eklenmesi veya mevcut verilerin değiştirilmesi işlemidir. Bu işlem için Python'da kullanılan farklı yöntemler bulunmaktadır.

Birinci yöntem olarak, dosya açma işlemi ile beraber write() fonksiyonu kullanılabilir. Bu yöntemde herhangi bir data tipi yazılabilse de, öncelikle dosya açma işlemi yapılmalıdır. Bu işlem de file.open("filename.txt", "w") şekilde yapılabilir. Ardından dosya içerisine veri yazmak için write() fonksiyonu kullanılabilir. Örnek olarak:

```file = open("example.txt", "w")file.write("Bu bir örnek yazıdır.")file.close()```

İkinci yöntem olan writelines() fonksiyonu ise, liste tipindeki verileri dosyaya yazmak için kullanılır. Bu yöntemde her bir eleman yeni bir satırda olacak şekilde dosyaya eklenir. Örnek olarak:

```file = open("example.txt", "w")lines = ["Satır 1\n", "Satır 2\n", "Satır 3\n"]file.writelines(lines)file.close()```

Üçüncü yöntem olarak ise, print() fonksiyonu kullanılabilir. Bu yöntemde, belirtilen veriler dosyaya yazılır ve her bir veri yeni bir satırda yer alır. Örnek olarak:

```file = open("example.txt", "w")print("Bu bir örnek yazıdır.", file=file)file.close()```

Son olarak, dosya açma işleminde 'a' parametresi kullanılarak dosyaya veri ekleme işlemi yapılabilir. Bu yöntemde dosya içerisindeki mevcut veriler korunur ve yeni veri bu verilerin sonuna eklenir. Örnek olarak:

```file = open("example.txt", "a")file.write("Bu yeni bir veridir.")file.close()```

Yukarıda belirtilen farklı yazma yöntemleri, dosya işlemleri için oldukça sık kullanılan yöntemlerdir. Dosya işlemlerinde doğru yöntemin seçilmesi, hızlı ve hatasız bir işlem yapılmasına yardımcı olur.