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 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.
@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...
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
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.
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
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