我使用带烧瓶服务器的HTML创建页面,在python中编写函数来搜索纯文本文件(demo.txt)中的单词,我的代码工作正常返回正确的单词。我想计算单词出现在文本中的时间
def getText(self,word):
try:
myfile=open("E:\Python_work\demo.txt","r");
mylist=[];
text=word;
for line in myfile:
if text in line:
mylist.append(line);
return mylist;
myfile.close();
except:
return err;
答案 0 :(得分:0)
这对我有用:
def getText(self, word):
try:
counter = 0
myfile=open("D:\\demo.txt","r");
for line in myfile:
counter += line.count(word)
myfile.close()
return counter
except:
return err
答案 1 :(得分:0)
如果你试图计算一个单词的出现次数,为什么该函数会返回一个列表?当然,您想要返回发生的次数吗?
您可以尝试这样的事情:
myfile = open('/path', 'r')
text = word
word_count = 0
for line in myfile:
if text in line:
word_count += 1
myfile.close()
return word_count
编辑:当然在try块中的代码。
旁注:分号是Python中的坏风格。当您使用它们时,解释器会将每一行视为两个语句,第二个语句为空。 Python的解释器使用空格来了解语句何时结束。
答案 2 :(得分:0)
您可以使用字符串的count方法来获取总计数。下面是计算文本文件中单词数的函数。
def count_words(word_to_be_count):
with open("E:\Python_work\demo.txt","r") as f:
content = f.read()
total_count = content.count(word_to_be_count)
return total_count
答案 3 :(得分:0)
以下是在Python中执行此操作的好方法 - 假设该函数是类定义的一部分:
def getText(self, word):
with open("D:\\demo.txt") as f:
return f.read().count(word)
这假定您将在调用者中处理异常(如果文件不存在)。否则使用try / except并返回合适的失败值:
def getText(self, word):
try:
with open("D:\\demo.txt") as f:
return f.read().count(word)
except IOError:
return -1