Python ile açılan dosyada üst satır silme

Merhaba arkadaşlar, python ile dosya açtığımızda üst satırları nasıl silebilirim…

Dosyayı r+ kipinde aç, ilk satırı boşlukla yazmayı dene
mesela
with open(“dosya_ismi.txt”, “r+”) as f:
f.seek(0)
f.write("\t \n")

tabi burada “dosya_ismi.txt” yerine dosyanın konumu pythonun çalıştığı konumda değilse, oraya yolu da eklemen gerek, bunu da r"…yol…/dosya_ismi.txt" olarak yapabilirsin.

Bi de şunları girintili yazman gerekiyor
f.seek(0)
f.write("\t \n")

Merhaba, hoş geldiniz.

Bu doğru bir yaklaşım değil. Siz bu şekilde dosyanın ilk satırının ilk sütununa gittiniz diyelim, f.write("\t \n") satırı ile siz ilk 4 adet sütuna girinti ve bir adet boşluk yerleştirmiş ve sonra da bir tane "\n" kaçış dizisi eklemiş olursunuz. Peki ya 1. satırdaki yazı 40 tane sütundan oluşuyorsa?

Böyle durumlarda genelde dosyayı okumak için bir kere, yazmak için ikinci kere açıyorum.

def satir_sil(dosya, satir):
    # Satırı silinecek dosyayı okuma modunda açın.
    with open(dosya, "r", encoding="utf-8") as d:
        # Dosyanın satırlarını okuyun.
        oku = d.readlines()
    #Aynı dosya ismine sahip yeni bir dosya yazacağız.
    with open(dosya, "w", encoding="utf-8") as d:
        # Oku listesindeki her bir eleman ve indis değerine
        # ulaşmak için bir for döngüsü tanımlıyoruz.
        for index, line in enumerate(oku):
            # Eğer indis değeri silmek istediğimiz satır ise
            if index == satir:
                # Dosyaya sadece "\n" kaçış dizisini yazdırıyoruz.
                d.write("\n")
            # Aksi durumda
            else:
                # Satırı yazdırıyoruz.
                d.write(line)
               
                                
satir_sil("test.txt", 0)
1 Beğeni

Kesinlikle daha doğru bir yaklaşım. Haklı.

def pop_from_start(file, n):
    file.seek(n)
    data = file.read()
    file.truncate(file.tell() - n)
    file.seek(0)
    file.write(data)

def pop_lines_from_start(file, n):
    for i in range(n):
        next(file)
    pop_from_start(file, file.tell())

with open(".txt", "rb+") as file:
    pop_lines_from_start(file, 2) # ilk 2 satırı siliyoruz
3 Beğeni

Teşekkurrlerr …

Teşekkürler…