python, liczenie wyrazów z pliku

0

Cześć,
Mam taki kod, jednak kiedy liczą się słowa, niektóre łączą się razem.
def słowa1(plik):
import collections
with open (plik,"r") as file:
data = file.read().replace('\n', '')
words = data.split()
word_counts = collections.Counter(words)
for word, count in sorted(word_counts.items()):
print('"%s" is repeated %d time%s.' % (word, count, "s" if count > 1 else ""))
x = input("podaj")
słowa1(x)
Dziękuję za pomoc :)

2

Są złączone, bo split rozdziela stringa tylko po białych znakach.

Potrzebujesz bardziej uniwersalnej metody rozdzielania:

import re
splitter_re = re.compile('[\s\.,!?]')
words = splitter_re.split(data)

splitter_re to wyrażenie regularne, które wyłapuje wszystkie białe znaki (\s), kropki(\., bo to znak specjalny), przecinki, wykrzykniki i znaki zapytania.

1 użytkowników online, w tym zalogowanych: 0, gości: 1