Python kelime sayma uygulaması yaparken öncelikle normal bir string içerisindeki kelimeleri bulmaya odaklanabiliriz. Daha sonra dosyayı açıp içeriğini string olarak alıp aynı işlemi ona da uygulayabiliriz. Ben dosya içerisindeki kelimeleri bulmayı göstereceğim için yol haritamız şu şekilde olacak.
Python ile dosya yolunu bulma
Öncelikle dosyamızı açmak için os paketini dosyamıza dahil edelim. Tam dosya yolu kullanarak da yapabiliriz ama bu örneği yaparken buna da değinmekde fayda var.
import os
Bulunduğumuz alanın tam yolunu çıkaralım.
getFolder = os.path.dirname(os.path.abspath(__file__))
join komutu ile bulunduğumuz alanın tam yolu üzerinden istediğimi metin dosyasının adını yazalım. Ben örnek olarak sample.txt oluşturdum. Bu komut ile şunu bulmuş olacağız “tamYol/sample.txt”
mainFile = os.path.join(getFolder, 'sample.txt')
Böylelikle python kelimele sayma programımız için kullancağımız dosyamızın bulunduğu yolu almış olduk.
open ile dosyamızı açma
file = open(mainFile)
Python open komutu ile dosyanın tam yolunu open fonksiyonuna parametre olarak veriyoruz. open fonksiyonu python üzerinde default olarak gelen fonksiyonlardan biridir.
Python dosya okuma
Bunun için read() fonksiyonunu kullanacağız. Dosyamızı okuduktan sonra close() ile kapatalım.
line = file.read() file.close()
Kelimeleri ayırma
Burada önemli komut split() bu komuta bir string vereceğiz ki bu string dosyamızdan geliyor. Daha sonra split() methodunu çalıştırdığımızda boşlukları referans alarak her kelimeyi ayrı ayrı kendi içerisinde barındıracak. İsterseniz burada print(splitWords) ile çıktısına bakabilirsiniz.
splitWords = line.split()

Hangi kelimeden ne kadar var?
Buradaki for döngüsünün mantığı; liste içerisindeki kelimeleri tek tek almak. Daha sonra yaptığımız şey ise bir dizi oluşturup dizinin key’ini kelimeler yapıp değerini de eğer daha önceden listede yoksa 1 daha önceden bulunuyorsa +1 yapmak.
allWords={}
for word in splitWords:
if word not in allWords:
allWords[word] = 1
else:
allWords[word] += 1
Son olarak kelime sıklığını ve kelimeleri yazdıralım. Böylece python kelime sayma uygulamamız tamamlanmış oluyor.
for key in allWords.keys():
print ("Kelime: %s =>%s " %(key , allWords[key]))
allWords.keys() ile dizinin keylerini referans alıyoruz. Çünkü key’ler bizim kelimelerimizi, onların değerleri ise kullanım sıklığını belirtiyor. Zaten key’ini bildiğimiz dizinin değerini bulmak basit.
Kodların tamamını ve github linkini aşağıya bırakıyorum.
import os
# Get the full path of current folder
getFolder = os.path.dirname(os.path.abspath(__file__))
# use join to get full path of txt file
mainFile = os.path.join(getFolder, 'sample.txt')
# open txt file
file = open(mainFile)
# with read we can read our txt file
# if it is necesarry use replace()
line = file.read()
file.close()
# use blank(" ") as a reference and split words
splitWords = line.split()
allWords={}
for word in splitWords:
if word not in allWords:
allWords[word] = 1
else:
allWords[word] += 1
#*.keys() returns the all keys of list
for key in allWords.keys():
print ("Word: %s =>%s " %(key , allWords[key]))