Dosya işlemlerinde toplam bulma

with open(“dosya.txt”,“a”, encoding=“utf-8”) as file:
file.write(“561875 Engin Akyüz 3 \n561172 Seda Aydın 4 \n5612194 Elif Kaya 4”)

with open(“dosya.txt”,“r”, encoding=“utf-8”) as file:
for i in file:
liste=i.split(" ")
numara=liste[3]

count ile kaç tane 4. sınıf kaç tane 3. sınıf olduğunu bulmaya çalıştım ama döngüde olduğu için
1
1
olarak gözüküyor. toplam sınıfı nasıl bulabilirim?

(```)

(```)
Yukarıda görünen 6 adet tırnağın tam arasına kodunuzu yapıştırmalısınız. Tabi parantezleri de kaldırarak.

Bunun dışında başka gördüğüm diğer bir eksiklikte, 561875 Engin Akyüz 3 \n561172 Seda Aydın 4 \n5612194 Elif Kaya 4 burada, kim 4. sınıf kim 3. sınıf ?

-Sondaki numaralar sınıfları oluyor.

derseniz de neden “.ıncı/inci sınıf” olarak belirtmediniz. Bunları baz alarak kaç tane olduğunu bulmanız çok daha rahat olurdu.

w yazma kipinde açsanız daha iyi olmaz mı? sonuçta kullanıcı tarafından herhangi bir giriş olmuyor(en azından paylaşılan koddan öyle anlıyorum) böylelikle aynı kişileri satırlarca saymamış olursunuz.

for i in file.readlines() olarak düzenlerseniz daha da işiniz kolaylaşır. Bir liste içerisine almış olursunuz i ile bu lisete içerisindeki elemanları yakalarsınız daha sonra count() methodu ile vereceğiniz argumanla aranan şeyin kaç gez geçtiğini(ilgili satırda) gösterimini yapabilirsiniz.

Daha da detaylı ve daha iyi bir bilgi istiyorsanız sorunuza gereken önemi vermeyip buradaki cevaba rağmen bilir kişilerden yanıt bekliyorsanız, biraz daha beklemeniz gerekebilir.

1 Beğeni

Bende öğrenme aşamasındayım ama kendimce bir şey yazdım. Belki başkası daha rahat çözüm üretebilir.

with open("dosya.txt","a", encoding="utf-8") as file:
    file.write("561875 Engin Akyüz 3\n561172 Seda Aydın 4\n5612194 Elif Kaya 4\n")

with open("dosya.txt", "r", encoding="utf-8") as file:
    veri=file.readlines()
print(type(veri))
print(veri)

newlist = [i.strip() for i in veri]
sinif3 = []
sinif4 = []
for i in newlist:
    if i[-1] == "3":
        sinif3.append(i[-1])
    if i[-1] == "4":
        sinif4.append(i[-1])

print(f"3. sınıftaki öğrenci sayısı {len(sinif3)}")
print(f"4. siniftaki öğrenci sayısı {len(sinif4)}")

birde “a” modunda açıyorsun program her çalışmasında 3 öğrenciyi tekrar yazıyor txt dosyana.

3 Beğeni

Evet onu ‘w’ ile değiştirdim. Teşekkür ederim çözüm için:)