Python - 行中搜索单词,计数并添加
我觉得我可能想得太复杂了,其实这个问题应该有个简单的解决办法,但我就是理不清楚。
我想找一种搜索的方法。我希望有一个Python脚本可以在一个文本文件中搜索一个关键词,并统计这个关键词出现的行数。不过,如果这个关键词在同一行出现多次,我只想算一次。
简单来说;如果一个关键词在某一行出现,我希望能把这一行算上,并把它加到一个数学公式里。
非常感谢任何帮助!提前谢谢大家。
4 个回答
0
也许你可以试试这个:
def kwdCount(textContent, keyword):
lines=textContent.split("\n")
count=len([1 for line in lines if line.find(keyword)!=-1])
return count
>>> yourTextFile="hello world\n some words here\n goodbye world"
>>> kwdCount(ourTextFile,"world")
2
0
如果你不想用Python来解决这个问题,Unix系统有很简单的方法:
- 想要“在一个文本文件中查找关键词”,可以用一个叫做grep的工具。
- 想要“统计有多少行”,可以用另一个叫做wc的工具。
你在Python中实现这两个功能有困难吗?
4
你可以定义一个这样的函数。
def lcount(keyword, fname):
with open(fname, 'r') as fin:
return sum([1 for line in fin if keyword in line])
现在,如果你想知道在"foo.cpp"文件中有多少行包含"int",你可以这样做:
print lcount('int', 'foo.cpp')
另外,如果你在合适的平台上,也可以在命令行中这样做:
grep int foo.cpp | wc -l