Veri işleme ilgi bir soru

merhaba benim şöyle bir kodum var

def kontrol():
    with open("test.pxx", "r") as dos:
        satir = dos.readlines()
    liste = ("sa", "hg")

    
    if liste in satir:
        if liste == "sa":
            print("as")
            sayı = sayı = +1
        elif liste == "hg":
            print("hb")

kontrol()

bu kodda dosyada ne kadar sa yazılmış ise as yazmasını istiyorum ancak sadece bir kez sa yazıyor bunu nasıl çözebilirim

Örnek teşkil eder umarım (metin belgesi üzerinde denedim .pxx uzantısını ilk kez
görüyorum)

with open("text.txt","a+") as file:
    file.seek(0)
    docs = file.readlines()
    for i in range(len(docs)): # docs adlı değişkenin uzunluğu ne kadar ise o kadar "as" yazıyor
        file.writelines("as\n")

Biraz daha bekleyin bilen biri muhakkak cevap verecektir.

1 Beğeni

Merhaba

Yazdığınız kodda hata var.

if liste in satir dediğinizde, bir tuple nesnesinin bir str nesnesinin içinde olup olmadığını sorgulamaya kalkıyorsunuz. Bu blokun altında da if liste == "sa" diyerek daha acayip bir şey yapıyorsunuz; tanımlamış olduğunuz tuple nesnesi, değeri "sa" olan bir str nesnesine eşitse gibi başka bir koşul oluşturuyorsunuz.

Size bir ipucu vereyim. Tipi str olan bir veride başka bir str verisinin kaç defa geçtiğini bulmaya çalışıyorsanız, str sınıfının count metodunu kullanabilirsiniz. Bu metottan dönen değeri de bir for döngüsünün yineleme sayısı olarak belirleyip, "as" ve "hb" ifadelerini artık metin içinde kaç kez geçiyorlarsa o kadar yazdırabilirsiniz.

Örnek:

print("sa arkadaşlar, nasılsınız? sa sa".count("sa"))
1 Beğeni