Python - 行中搜索单词,计数并添加

3 投票
4 回答
7800 浏览
提问于 2025-04-17 06:12

我觉得我可能想得太复杂了,其实这个问题应该有个简单的解决办法,但我就是理不清楚。

我想找一种搜索的方法。我希望有一个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

撰写回答