Text dosyasını listeye aktarıp işlem yapmak

merhaba elimde 4bin satırlık bir text dosyası var bunu fonksiyon olarak(def ile) bir listeye aktarmak ve o liste üzerinden kelimelerle işlem yapmak istiyorum bunu nasıl yapabilirim yani kısaca bu text dosyasını nasıl bir listeye alırım :smiley: ek bir modül indirmeme gerek var mı varsa hangi modülü indirmeliyim

Dosyayı okuma modunda aç ve split metodunu ön tanımlı değeri ile kullan. Direk liste olarak alırsın her kelimeyi.

3 Beğeni

@Shanyu hocamın dediğini de dikkate alarak şöyle bir kod üretilebilir(fonksiyon).

from getpass import getuser
def listele(yol):
    with open(f"{yol}","r",encoding="utf-8") as f:
        file = f.read()
        l = file.split() # Boşluklardan itibaren liste içine alıyor
    return l
print(listele("C:\\Users\\"+getuser()+"\\Desktop\\genclige_hitabe.txt"))

Gençliğe hitabeden verdiğim örnekle de paşam Mustafa Kemal’e sevgilerle. açtığın yolda gösterdiğin hedefe... :heart:

5 Beğeni

sınıf öğretmenimiz bunun için şöyle bir kod yazmış

def load_dataset(dataset_name):
    with open(dataset_name,"r") as f:
        satir_liste=f.readlines()
        f.close()
    return satir_liste

ancak bunu farklı bi sayfaya import etmeye çalışınca dosya bulunamadı hatası alıyordum o hatayı çözdüm sanırım şimdi de böyle bi hata alıyorum

File “C:\Users\kullanıcıadı\AppData\Local\Programs\Python\Python39\lib\encodings\cp1254.py”, line 23, in decode
return codecs.charmap_decode(input,self.errors,decoding_table)[0]
UnicodeDecodeError: ‘charmap’ codec can’t decode byte 0x9e in position 631: character maps to

kod mu hatalı düzgün import mu edemedim bilmiyorum doğrusu nedir acaba bu hata ne demek onu da bilmiyorum :confused:

Estağfirullah yeğenim, tek hoca var:

2 Beğeni

kod gayet sağlıklı çalışıyor hatalı import etseniz zaten size bir uyarı verilir başta (yazarken). başka bir py dosyasına bunu yazıp diğer bir py dosyasından bu yazdığınızı mı kullanmaya çalışıyorsunuz? Tamamen sorununuz bu mu?

yoksa attığınız bu soruna yönelik çözüm ise şöyle bırakabilirim bir inceleyin yetmezse daha da fazla üstünde durmalısınız.

1 Beğeni

sanırım utf-8 ile alakalı bir sorundan böyle oluyor peki ben az önce yazdığım kodu nasıl utf8 e uyarlıycam

En başta size cevap olarak yazdığım fonksiyonu inceleyin

1 Beğeni

hallettim çok teşekkürker

Merhaba, son satırdaki f.close()'a gerek yok aslında zira with’in sonrasında open kullandığınızda with bloğunun sonrasında (yani sizde return satirlar_listesi’ne erişildiğinde) dosya çoktan kapatılmış oluyor (henüz kapanmadıysa tabii, sizdeki gibi). Yani with kullanarak elle kapatmaktan kurtuluyorsunuz; open’ı with ile kullanıp

fh = open("dosya")
fh....
fh.close()

yapmak yerine

with open("dosya") as fh:
   fh....

yapılmasının aşağı yukarı tek nedeni o fh.close()'u elle yazmamak :d

4 Beğeni