我正在学习开发一个应用程序,该应用程序可以从.txt
文件中输入单词,并检查单词是否存在于字典文件中。
运行代码时,出现类型错误。请帮我解决我在这里做错的事情。
input.txt
文件包含段落句子。
dictionary.txt
文件逐行列出了单词列表。
def word_check(check_file, input_file):
try:
open_file = open(check_file, "r")
read_file = open_file.readlines()
open_file_2 = open(input_file, "r")
read_file_2 = open_file_2.readlines()
for input_word in read_file_2:
input_word = input_word.strip("!@#$%^&*()_+{}:?><'-=,./;][")
each_input_word = input_word.lower().split()
list_each_word = each_input_word
count = 0
for item in read_file:
line = item
for word in line:
check_word = word.lower()
if list_each_word in check_word:
count += 1
print(count)
except FileExistsError:
print("File not exist")
word_check("list.txt", "input.txt")
如果dictionary.txt
文件中存在单词,我希望对单词进行计数。
答案 0 :(得分:1)
您通过执行list_each_word
来生成input_word.lower().split()
。
这会生成一个单词列表。
然后,您遍历单词列表并执行if list_each_word in check_word:
。
在这里,check_word
是一个字符串,而list_each_word
是一个列表。您应该切换这些位置,因为您要检查字符串是否在列表中。
应该是:
if check_word in list_each_word :
答案 1 :(得分:0)
如果您要计算check_word
中list_each_word
的出现次数,可以替换以下两行:
if list_each_word in check_word:
count += 1
与此:
count += list_each_word.count(check_word)
这将发现check_word
中list_each_word
发生了多少次。
答案 2 :(得分:0)
我想通了。
def spell_check(dictionary, document):
try:
open_document = open(document, "r")
input_sentence = open_document.readline()
input_words = input_sentence.lower().split()
print(input_words)
open_dictionary = open(dictionary, "r")
check_sentence = open_dictionary.read()
check_word = check_sentence.lower()
for word in input_words:
word = word.strip("!@#$%^&*()_+{}:?><,./;[]=-")
if word not in check_word:
print(f"Mispelled words are: {word}")
except FileExistsError:
print("File does not exist")
spell_check("dictionary.txt", "document.txt")