我很确定我已经过度思考了这个问题并且有一个简单的结果,但我似乎无法将它们放在一起。
我正在寻找一种搜索方法。我想要一个Python脚本搜索关键字的文本文件,并计算它出现的行数。虽然如果关键字多次出现在一行上,我仍然只想算一次。
长话短说;如果键盘出现在一行上,我希望它计算该行并将其添加到数学等式中。
非常感谢任何帮助!提前谢谢。
答案 0 :(得分:2)
您可以定义以下功能。
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
答案 1 :(得分:0)
非Python Unix解决方案非常直接:
在Python中实现其中任何一个的本质是否有困难?
答案 2 :(得分: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
答案 3 :(得分:0)
假设f是文件对象,
lines = f.readlines()
print len([line for line in lines if keyword in line])