我使用的是运行python 3.7.4的windows计算机。
目前,我正在尝试使用flashText
库来处理.txt文件,以统计我在处理文件时选择并出错的字符的出现次数
我的代码如下
from flashtext import KeywordProcessor
#making a dictionary of major charaters
#a few major players for now
keyword_processor = KeywordProcessor(case_sensitive=False)
keyword_dict = {
"Eddard" : ["ned", "eddard"],
"Daenerys" : ["dany", "khaleesi"],
"john" : ["john snow", "bastard"],
"Tyrion" : ['imp', 'halfman' , 'tyrion Lannister' ],
"bran" : ['bran stark']
}
keyword_processor.add_keywords_from_dict(keyword_dict)
text_file = open("gameofthrones.txt", "r" , encoding="utf8")
keywords_found = keyword_processor.extract_keywords(text_file)
print(keywords_found)
text_file.close()
我遇到了一个我不太理解的错误:
C:\Users\MLMir\Desktop\python>stackoverflow.py
Traceback (most recent call last):
File "C:\Users\MLMir\Desktop\python\stackoverflow.py", line 24, in <module>
keywords_found = keyword_processor.extract_keywords(text_file)
File "C:\Users\MLMir\Anaconda3\lib\site-packages\flashtext\keyword.py", line 475, in extract_keywords
sentence = sentence.lower()
AttributeError: '_io.TextIOWrapper' object has no attribute 'lower'
我尝试将其更改为列表,但这只是抛出了一个不同的属性错误
打开文本文件后,需要读取python中的文本文件
请尝试以下内容:
首先,在一个空文件中搜索关键字是没有意义的
其次,extract_关键字方法需要的是字符串,而不是文件。lower不是文件的一种方法
相关问题 更多 >
编程相关推荐