Python - Поиск слова в строке, считать его, добавить его - PullRequest
1 голос
/ 13 ноября 2011

Я почти уверен, что думаю об этом, и есть простой результат, но я просто не могу собрать все это вместе.

Я ищу какой-то метод поиска. Я бы хотел, чтобы скрипт Python поискал в текстовом файле ключевое слово и посчитал, на сколько строк оно появляется. Хотя, если ключевое слово встречается в одной строке несколько раз, я бы посчитал его только один раз.

Короче говоря; Если клавиатура появляется в одной строке, я хочу, чтобы она посчитала эту строку и добавила ее к математическому уравнению.

Любая помощь очень ценится! Заранее спасибо.

Ответы [ 4 ]

2 голосов
/ 13 ноября 2011

Вы можете определить следующую функцию.

def lcount(keyword, fname):
    with open(fname, 'r') as fin:
        return sum([1 for line in fin if keyword in line])

Теперь, если вы хотите узнать количество строк, содержащих «int» в «foo.cpp», вы делаете:

print lcount('int', 'foo.cpp')

Альтернатива, которую вы можете сделать в командной строке (если вы находитесь на соответствующей платформе):

grep int foo.cpp | wc -l
0 голосов
/ 13 ноября 2011

Предполагая, что f является файловым объектом,

lines = f.readlines()
print len([line for line in lines if keyword in line])
0 голосов
/ 13 ноября 2011

Возможно, вы могли бы попробовать это:

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 голосов
/ 13 ноября 2011

Решение, отличное от Python Unix, довольно быстро:

  • "поиск в текстовом файле по ключевому слову" - это grep
  • "подсчитать, сколькоlines "is a wc

Вам сложно реализовать суть любого из них в Python?

...