Jeroen Ruigrok van der Werven wrote: > line_nr = 0 > for line in big_file: > line_nr += 1 > has_match = line.find('my-string') > if has_match > 0: > print 'Found in line %d' % (line_nr) > Style note: May I suggest enumerate (I find the explicit counting somewhat clunky) and maybe turning it into a generator (I like generators):
def lines(big_file, pattern="my string"): for n, line in enumerate(big_file): if pattern in line: print 'Found in line %d' % (n) yield n or for direct use, how about a simple list comprehension: lines = [n for (n, line) in enumerate(big_file) if "my string" in line] (If you're just going to iterate over the result, that is you do not need indexing, replace the brackets with parenthesis. That way you get a generator and don't have to build a complete list. This is especially useful if you expect many hits.) Just a note. regards /W -- http://mail.python.org/mailman/listinfo/python-list