Actually, we should probably also handle errors related to being unable to open files that do exist (i.e., permission errors), because those could potentially cause a lot of confusion if they ever happen. I think the correct thing to do in that case would be to log a warning and continue the search.

Hint: You can have multiple `except` blocks.
Hint: http://docs.python.org/3/library/exceptions.html#os-exceptions