Metin Belgesinde Silme İşlemi Yaptığım Halde Son Satır Yine Yazdırılıyor

Selamlar değerli üstatlar, metin belgesinde silme işlemi yapıyorum ancak son satırdaki elemanın bazı karakterleri tekrar yazdırılıyor bunun nedeni ne olabilir ?

Mesela son satırdan kastım şöyle bir metin belgemiz var ;,

peker99
m_ustun07
reborniee
rabia.uzunel
mehmetfts067

Ben bu yukarıdaki listenin 2. elemanına işlem yapmak istiyorum, fakat aşağıdaki işlemi yaptığım zaman sondaki elemanın bazı karakterleri yazdırılıyor. Bunun nedeni nedir?

Kodlarım ;

with open("C:\\Users\\bilgi\Desktop\\Python Denemeleri\\Dosyam.txt", "r+", encoding="utf-8") as oku:

    silinecekVeri = oku.readlines()

    silinecekVeri.pop(1)

    oku.seek(0)

    oku.writelines(silinecekVeri)

oku.close()

Şu hale geliyor ;

peker99
reborniee
rabia.uzunel
mehmetfts067
metfts067

Niye böyle oluyor ne yapmam lazım silipte listeyi güncellemem için? Yani bir değişkene aktarıp yazdırmayı denedim ondada başarısız oldum

writelines veya write kullanınca dosyanın içeriği silinmiyor. Dosyanın truncate metodu olması lazım. Onu kullanarak dosyanın boyutunu sıfır yapıp, yani içindekileri tamamen silip daha sonra yazma işlemini yapabilirsiniz.

2 Beğeni

Hmm tamam hocam Ben daha o konuya gelmedim unutmayayim diye az pratik yapayım dedim tabi oda elde patladı :smiley: teşekkürler

Ekrem hocam, ben o konulara gelmediğim için şimdilik bildiğim yöntemden ilerledim, ve dosyayı tekrar oluşturup, güncel veriyi yazdırma kararı aldım. Şimdilik sonuca ulaştırdı beni. Yani ;

with open("C:\\Users\\bilgi\Desktop\\Python Denemeleri\\Dosyam.txt", "r+", encoding="utf-8") as oku:

    silinecekVeri = oku.readlines()

    silinecekVeri.pop(1)

    print(silinecekVeri)

with open("C:\\Users\\bilgi\Desktop\\Python Denemeleri\\Dosyam.txt", "w", encoding="utf-8") as yaz:

    yaz.writelines(silinecekVeri)

yaz.close()

oku.close()