Python'da yazı nasıl metin dosyasının sonuna yazılır?

qualfy

Hectopat
Katılım
3 Aralık 2020
Mesajlar
525
Çözümler
1
Daha fazla  
Cinsiyet
Erkek
Merhaba, Python dilinde daha önceden içinde bazı metinler olan dosyanın son satırına kullanıcıdan alınan bilgileri yazdırıyorum sonrasında ise başka bir fonksiyonun işlevini kullanarak satır okuma işlemi yapıp yeni bilgiler üretmek istiyorum. Problemim ikinci olarak çağırdığım fonksiyonun ilk satırı okuyup işlem yapması fakat ben bu fonksiyonu bilgi aldığım fonksiyonun içinde çağıracağım. Bu sebeple bilgi üretme fonksiyonunu çağırmadan imleci son satırın başına almak istiyorum. Bunu nasıl yapabilirim?
 
Pardon geciktim biraz. Bir yandan arkada kendi ödevimi yapıyorum da, ilham geldi oraya gitmiştim. Açıklama amaçlı şöyle ilkel bir şey yazdım:

Python:
def read():
    with open("a.txt", "r") as f:
        return f.readlines()


def write(n):
    with open("a.txt", "a") as w:
        w.write(n)



# İlk okuma işlemi
data = read()

# Dosyaya ekleme yapıyoruz
write("text\n")

# İkinci okuma işlemi
data = read()

print(data[len(data) - 1])

Güncellemeden önceki a.txt içeriği (normalde sonlarında birer boş satır var ama Sosyal o şekilde göndermemize izin vermiyor):


Kodu çalıştırdık. Önce dosyayı okudu. Yazma türü append olduğu için imleç dosyanın sonuna, yani 5. satıra iniyor. Kod çalıştıktan sonra a.txt içeriği şu şekilde oluyor:


İkinci okuma işlemi dosyanın bu şeklini okuyor. Sonra son satırı almak için data'nın son halinin son elemanını alıyoruz. Son elemanının indexini de uzunluğundan 1 çıkararak buluyoruz.

Belki sorabilirsiniz, son satır boşluk değil mi diye. Değil. Yeni satıra geçildiğini belirten "\n" karakteri "text"in sonunda, alt satırın başında değil. Bununla işiniz yoksa .replace("\n", "") şeklinde kurtulabilirsiniz.

Dediğim gibi çok ilkel, muhtemelen çok daha zarif ve mantıklı bir şekilde yapılabilir. Meşgul olduğum ve çok hazır cevap vermek istemediğim için üstünde çok uğraşmadım.
 

Technopat Haberler

Yeni konular

Geri
Yukarı