Python Dosyada Güncelleme

Python Dosyada Güncelleme

Python'da bir dosyada güncelleme yapmak, yani dosya içindeki belirli bir veriyi değiştirmek için birkaç adım izlemek gerekir. Doğrudan dosya üzerinde belirli bir satırı değiştirmek mümkün değildir. Bunun yerine, genellikle şu adımlar izlenir:

  1. Dosyayı okuma modunda açarak içeriği belleğe almak.
  2. İçerik üzerinde gerekli değişiklikleri yapmak.
  3. Dosyayı yazma modunda açarak güncellenmiş içeriği yeniden dosyaya yazmak.

1. Adım: Dosyayı Okuma

İlk olarak dosyayı okuma modunda açarak dosyanın tüm içeriğini okuruz. Bu işlem genellikle readlines() veya read() ile yapılır.

2. Adım: Güncelleme

Daha sonra, bu içerik üzerinde istediğimiz değişiklikleri yaparız.

3. Adım: Dosyaya Güncellenmiş İçeriği Yazma

Son olarak dosyayı yazma modunda açıp güncellenmiş içeriği dosyaya geri yazarız. Yazma işlemi, dosyanın eski içeriğini tamamen siler ve yeni içerik yazar.

Örnek: Belirli Bir Satırı Güncelleme

Aşağıda bir dosyada belirli bir satırı güncellemek için örnek bir kod bulunuyor:

# Dosyanın içeriğini oku with open("dosya.txt", "r") as dosya: satirlar = dosya.readlines() # Dosyanın tüm satırlarını liste olarak oku # Satırlarda değişiklik yap for i in range(len(satirlar)): if "eski_veri" in satirlar[i]: satirlar[i] = satirlar[i].replace("eski_veri", "yeni_veri") # Güncellenmiş içeriği dosyaya geri yaz with open("dosya.txt", "w") as dosya: dosya.writelines(satirlar) # Güncellenen satırları dosyaya yeniden yaz

Bu örnekte:

  • Dosya okuma modunda açılarak readlines() ile satır satır okunur.
  • Döngü içinde, her satırda belirli bir veriyi arayıp, replace() ile o veriyi güncelleriz.
  • Son olarak dosya yazma modunda açılarak güncellenmiş satırlar dosyaya yazılır.

4. Örnek: Kullanıcıdan Veri Alarak Dosyada Güncelleme

Kullanıcının verdiği bir veriyle dosyadaki belirli satırı güncelleme:

arama = input("Değiştirilecek veriyi girin: ") degisim = input("Yeni veriyi girin: ") # Dosyanın içeriğini oku with open("dosya.txt", "r") as dosya: satirlar = dosya.readlines() # Değişiklikleri yap for i in range(len(satirlar)): if arama in satirlar[i]: satirlar[i] = satirlar[i].replace(arama, degisim) # Güncellenmiş içeriği dosyaya geri yaz with open("dosya.txt", "w") as dosya: dosya.writelines(satirlar)

Dosyayı Güncelleme Modları

  • Yazma Modu ('w'): Dosyayı tamamen yeniden yazar, içeriği silip baştan yazar.
  • Ekleme Modu ('a'): Sadece dosyanın sonuna veri ekler, var olan içeriği güncellemek için kullanışlı değildir.
  • Okuma ve Yazma Modları ('r+'): Dosyayı hem okuma hem yazma modunda açar, ancak dikkatli kullanılmalıdır. Çünkü dosyanın belirli bir yerinde yazma işlemi yapmak var olan içeriği bozulabilir.

Özet

  • Dosya güncelleme işlemi, içeriği okuma, güncelleme ve yeniden yazma adımlarını içerir.
  • readlines() veya read() ile dosya içeriğini okur, gerekli değişiklikleri yaptıktan sonra writelines() ile yeni içerik dosyaya yazılır.
  • Güncellemeleri yaparken dikkatli olunmalıdır çünkü yazma işlemi dosyanın eski içeriğini tamamen siler.


Yorum Ekle

Üzerine gel