如何在Python上的文件中计算单词“test”?

时间:2016-02-24 18:57:07

标签: python

我有一个由许多字符串组成的文件。看起来像

  

sdfsdf sdfsdfsdf sdfsdfsdf test gggg uff   测试测试fffffffff   sdgsdgsdgsdg sdgsdgsdgsdg uuuttt   555555555 ddfdfdfff dddd4444 66677565   sdfsdf5 556e4ergferg ergdgdfgtest kdfgdfgfg test

如何计算所有单词“test”。我试过了,但我只有这个结果

f = open("file")
words =  0
for s in f:
    i = s.find('test')
    if i > -1:
        words += 1
print(words)
f.close()

此脚本仅计算包含单词“test”的字符串。如何计算单词?

5 个答案:

答案 0 :(得分:1)

如果你想找到所有的比赛:

with open("file") as f:
    numtest = f.read().count("test")

如果您只想找到单词匹配:

with open("file") as f:
    numtest = f.read().split().count("test")

答案 1 :(得分:1)

一衬垫:

s.split().count('test')

答案 2 :(得分:0)

这应该有效。

form

答案 3 :(得分:0)

您可以使用正则表达式:

import re

with open('myfile.txt', 'r') as f:
    txt = f.read()

cnt = len(re.findall(r'\btest\b', txt))

如果您不关心区分大小写(也匹配TestTEST

cnt = len(re.findall(r'\btest\b', txt, flags=re.I))

答案 4 :(得分:0)

它会计算整个文件中test的数量:

f = open('my_file.txt', 'r')
num_tests = len([word for word in f.read().split() if word == 'test'])
f.close()

请注意, NOT 匹配tester, tested, testing, etc....之类的字词 如果您还想匹配它们,请改为使用:

f = open('my_file.txt', 'r')
num_tests = len([word for word in f.read().split() if 'test' in word])
f.close()