Основываясь на ваш вопрос, я буду считать вас есть два файла. Первый файл будет содержать слова, которые вы хотите найти, разделенные новой строкой. Второй файл будет содержать текст.
Файл 1: (words.txt)
dog
cat
went
Файл 2: (story.txt)
Today my cat and dog ran out of my backyard.
This is not the first time my dog has ran away.
Last time he went to the dog park and then went to my neighbors house.
Сначала вы хотели бы создать словарь, содержащий каждое из ключевых слов в words.txt
файл. Вы бы указали значение этого количества раз, которое оно было замечено во втором файле.
wordDB = { 'dog': 0, 'cat': 0, 'went' : 0}
Чтобы сделать это динамически вы бы сначала создать пустой словарь, а затем цикл строк в файле words.txt
.
wordDB = {}
wordFile = open('words.txt','r')
for line in wordFile.readlines():
word = line.replace('\n','') #This replaces the new line character
if not(word in wordDB.keys()): #Checks that the word doesn't already exist.
wordDB[word] = 0 # Adds the word to the DB.
wordFile.close()
Теперь нам нужно открыть второй файл и перебрать по каждой строке в этом файле. Для каждой строки в этом файле мы будем проверять каждую клавишу в wordDB, и если она существует, увеличивайте ее количество соответственно.
storyFile = open('story.txt','r')
checkWordList = wordDB.keys()
for line in storyFile.readlines():
wordList = line.replace('\n','').split(' ')
for eachWord in checkWordList:
if eachWord in wordList:
wordDB[eachWord] = (wordDB[eachWord] + wordList.count(eachWord))
storyFile.close()
Теперь вам просто нужно перебрать в checkWordList один больше времени и распечатать значения из wordDB.
for eachWord in checkWordList:
print "%s : %s" % (eachWord, wordDB[eachWord])
Вы получите вывод:
went: 2
dog: 3
cat: 1
Не могли бы вы добавить вход и ожидаемый результат? В настоящее время вопрос остается неясным. – niemmi
Вы пытаетесь подсчитать слова в соответствующем файле? Или вы пытаетесь подсчитать, сколько раз появляется определенное слово? – siavashk
@niemmi извините за это! Я могу добавить ожидаемый ввод, для первой попытки он ничего не печатает.Но для моей другой попытки он будет распечатывать, сколько строк находится в файле, в котором проверка текста содержит слова, но не количество слов в каждой строке файла, а общее количество ключевых слов, которые я первоначально имел в файле – HelloWorld4382