Pythonda Sınıflarla alakalı bir kodta yardıma ihtiyacım var

Hepinize selamlar,bir metin dosyasının içindeki kelimeleri bulan ve ne kadar geçtiklerini söyleyen bir program yazdım.
Ama anlamadığım bir nokta var,bu metin dosyasının değişken olabilmesi için gördüğünüz gibi self.metin_ismi = “metin.txt” yaptım ve kullanıcıdan input alarak bunu değiştirmeye çalıştım.Ama kodum bir türlü farklı dosyaları okumuyor hep bu dosyayı okuyor.Acaba nerede hata yaptım bana öneri verebilir misiniz?Teşşekkür ederim.

class dosya:
    sayac = 0
    kelime_sozlugu = dict()

    def __init__(self):
        self.metin_ismi = "metin.txt"

        with open(self.metin_ismi,"r+",encoding = "utf-8") as file:
            a = file.read()
            kelimeler = a.split()
            self.sade_kelimeler = []
            for i in kelimeler:
                i = i.strip("")
                i = i.strip(".")
                i = i.strip(",")
                self.sade_kelimeler.append(i)
    def kelime_sayisi(self):
        sade_kume = set()
        for x in self.sade_kelimeler:
            sade_kume.add(x)


        for i in self.sade_kelimeler:
            if i in self.kelime_sozlugu:
                self.kelime_sozlugu[i] += 1
            else:
                self.kelime_sozlugu[i] = 1
        for x,y in self.kelime_sozlugu.items():
            if self.sayac == 1:
                pass
            else:
                print("{} kelimesi {} kadar geçmiştir.".format(x,y))

    def ozel_kelime(self):
        self.sayac = 1
        self.kelime_sayisi()
        a = input("Kelimenizi giriniz:")
        assert a in self.kelime_sozlugu,"Bu kelime metinde bulunmuyor."
        print("{} kelimesi {} kadar geçti".format(a, self.kelime_sozlugu[a]))


dos = dosya()
while True:
    print("""
    Haş haşi kokoya hoşgeldiniz:
    1-Belirli bir metinin harflerini analiz et(default değer = metin.txt)
    2-Bu özel metinin içerisinde gireceğiniz harfin olup olmadığını varsa ne kadar olduğu
    3-Çıkış
    """)
    aa = input("İşlem numaranız:")
    if aa == "1":
        aa1 = input("Okunucak dosya isminiz:")
        dos.metin_ismi = aa1
        dos.kelime_sayisi()
    elif aa == "2":
        dos.ozel_kelime()
    elif aa == "3":
        break

Burada zaten dosya açılmış olduğu için sonradan değer değiştirilse bile hep aynı dosya açılıyor.
Dosya adını __init__ fonksiyonuna argüman olarak verirseniz sorun çözülecektir.

Teşşekkürler yaptım :slight_smile:

1 Beğeni

Rica ederim :slight_smile:

1 Beğeni