In teslimatlar Linux kullanarak işlediğimiz bu Python programlama kursunun önceki derslerinde, verilerin listelerden, demetlerden ve sözlüklerden girilebileceğini veya kullanıcının verileri manuel olarak girmesinin istenebileceğini gördük. Şimdi dosya okuma veya kaydetme işlemlerini nasıl yapacağımızı göreceğiz.
Gerekli modüllerin içe aktarılmasıyla Python, en popüler ofis yazılım paketlerinin ve PDF'lerin formatları da dahil olmak üzere çeşitli dosya formatlarını okuyabilir, oluşturabilir ve bunlara yazabilir; ancak Bu yazımızda şimdilik metin dosyalarıyla sınırlı kalacağız.
Linux kullanarak Python programlama kursu. On dördüncü bölüm.
Düz metin dosyaları, verileri depolamanın en temel yoludur.Bunlar, biçimlendirme yapılmadan satırlar halinde depolanan harfler, rakamlar, semboller ve boşluklardır. Bu, Gedit, Kate veya Windows Not Defteri gibi programlarla oluşturulan dosya türüdür.
Çoğu program ve programlama diliyle uyumlu olması, Düz metin formatı, ayarlar, etkinlik kayıtları, listeler veya program yürütme sonuçları gibi basit bilgileri saklamak için kullanılır.
Python, kurulumundan itibaren metin dosyalarıyla çalışmak için gerekli temel komutları içerir; bunlar arasında dosyaları açma, okuma, yazma ve kapatma yer alır.
open() fonksiyonu
Bu fonksiyon iki parametre gerektirir: dosya adı ve aşağıdakilerden biri:
- r: Mevcut bir dosyayı okuyun.
- wDosyanın var olup olmadığını kontrol eder, yoksa oluşturur, varsa içeriğinin üzerine yazar.
- r+: Dosyaya hem okuma hem de yazma işlemlerini birleştirir.
- a: Dosya içeriğini aşağıya yazın.
Örneğin, şu talimat:
archivo = open("archivo.txt", "r")
- Dosyayı açın ve içeriğini okuyun.
- Bu değişken, `open` fonksiyonunun dosyayı açarken oluşturduğu nesneyi saklar.
Bu programla dosyayı açıyoruz, içeriğini okuyup yazdırıyoruz ve dosyayı kapatıyoruz.
archivo = open("archivo.txt", "r")
contenido = archivo.read()
print(contenido)
archivo.close()
Bu program
- Dosyayı okuma modunda açın ve nesneyi dosya değişkenine atayın.
- `file` nesnesi değişkenine atanan `read` metodu, `read` metodunu kullanarak içeriği okur ve `content` değişkenine atar.
- `content` değişkeninde saklanan içeriği yazdırır.
- Dosyayı kapatın.
Şimdi bir dosyanın içeriğini okumanın başka bir yoluna bakalım;
Bu durumda readlines adı verilen başka bir yöntem kullanıyoruz.
- Program dosyayı okuma modunda açar, nesneyi oluşturur ve dosya değişkenine atar.
- `file.readlines` fonksiyonu, metin dosyasının tüm satırlarını içeren bir liste oluşturur ve bu listeyi `lines` değişkenine atar.
- Döngü, her satırı ayrıntılı olarak yazdırır. Düz metin editörleri satır sonlarını belirtmek için özel bir karakter içerdiğinden, strip yöntemi bu karakteri çıktıdan kaldırır.
- Dosya kapatıldı.
Bu tür bir programla dosya yazabiliriz.
archivo = open("archivo.txt", "w")
archivo.write("Hola, estamos escribiendo un archivo.\n")
archivo.write("usando un programa en Python.")
archivo.close()
- Program bir dosyayı açar veya yoksa oluşturur, bir nesne oluşturur ve bunu dosya değişkenine atar.
- Dosya değişkenine `write` yöntemini ekleyerek ilk satırı yazın. `.\n` satır sonu eklenmesi gerektiğini belirtir.
- İkinci satırı yazın.
- Dosyayı kapatın.
Dosyaya yazmanın başka bir yöntemi:
archivo = open("archivo.txt", "a")
archivo.write("Voy a agregar una línea más.")
archivo.close()
Bu program, mevcut metinden sonra metnin eklenmesi gerektiğini belirtmek için 'a' parametresini kullanarak dosyayı açar.
Şimdi birleşik bir örnek deneyelim:
Bu program aşağıdaki işlemleri gerçekleştirir:
- distributions.txt dosyasını yazma modunda oluşturun, Python'ın çalışacağı bir nesne oluşturun ve bunu file değişkenine atayın.
- Dosyaya üç dağıtım adını, aralarında bir satır boşluğu bırakarak, sütunlar halinde sıralanacak şekilde yazın.
- Dosyayı kapatın.
- Dosyayı okuma modunda açın, Python'ın çalışacağı nesneyi oluşturun ve dosya değişkenine atayın.
- Dosyanın içeriğinin görüntüleneceğini belirten mesajı ekrana yazdırır.
- Dosyanın içeriğini satır satır okumak için döngüyü başlatın.
- Satır sonu göstergesi karakterini atlayarak satır satır yazdırır.
- Dosyayı kapatın.
Hata yönetimi
Genellikle kodlama veya kullanıcı hataları nedeniyle programın çalışmaya devam etmesini engelleyen durumlar ortaya çıkabilir. Python genellikle yürütmeyi durdurur ve bir hata mesajı görüntüler. Ancak, bunu önlemek için adımlar atabiliriz. Bu işleme istisna yönetimi denir.
Python'da, try-except bloğu olarak bilinen, sorunları (veya istisnai durumları) ele almak için bir mekanizma bulunur.`try` bloğu, Python'ın hataya atadığı kodu içerirken, `except` bloğu ise bu hataya yanıt vermek için kullanılması gereken kodu içerir. Örneğin, var olmayan bir dosyayı açmaya çalışmak veya programın yeterli izinlere sahip olmadığı bir dosyaya yazmak bir hata olabilir.
- Python'ın çalıştırması gereken kod bloğuna `try` komutuyla başlıyoruz.
- Dosyayı (varsa) okuma modunda açıyoruz.
- Dosya içeriğini `content` değişkenine atıyoruz.
- "Dosya İçeriği" başlığını yazdırıyoruz.
- İçeriği yazdırıyoruz.
- Dosyayı kapattık.
- Program dosyayı bulamazsa, dosyanın mevcut olmadığını ve adını kontrol etmemiz gerektiğini belirten iki mesaj görüntüler.
En sık rastlanan hata türleri:
- DeğerHatası: Bir işlem veya fonksiyonda geçersiz bir değer kullanma girişiminde bulunuluyor.
- TipHatası: Bir işlem veya fonksiyonda geçersiz bir veri türü kullanılmaya çalışılıyor.
- Dizin Hatası: Bir listede veya demette var olmayan bir indekse erişmek istiyorsunuz.
- Anahtar HatasıSözlükte bulunmayan bir anahtara erişme girişiminde bulunuluyor.
- Dosya BulunamadıHatasıVar olmayan bir dosyaya erişim girişiminde bulunuluyor.
- SıfırBölme Hatası: Bir sayıyı sıfıra bölmeye çalışılıyor.
- ÖznitelikHatası: Bir nesnede var olmayan bir özniteliğe erişme girişiminde bulunuluyor.
- İçe Aktarma HatasıBu durum, mevcut olmayan bir modülü içe aktarmaya çalıştığınızda veya içe aktarma sırasında hatalar oluştuğunda ortaya çıkar.
Gelecek yazılarımızda bu konuya devam edeceğiz.