fastest way to test file for string?

Tim Chase python.list at
Fri Jun 5 09:14:36 EDT 2009

> Hi.  I need to implement, within a Python script, the same
> functionality as that of Unix's
>    grep -rl some_string some_directory
> I.e. find all the files under some_directory that contain the string
> "some_string".

I'd do something like this untested function:

   def find_files_containing(base_dir, string_to_find):
     for path, files, dirs in os.walk(base_dir):
       for fname in files:
         full_name = os.path.join(path, fname)
         f = file(full_name)
         for line in f:
           if string_to_find in line:
             yield full_name

   for filename in find_files_containing(
     print filename

It's not very gracious regarding binary files, but caveat coder.


More information about the Python-list mailing list