It's important for being able to selectively handle exceptions correctly. You'll want to have a look at the builtin exception hierarchy. You can see that different exception types inherent from each other, and thus allow you to be specific in which errors you expect and want to handle explicitly, and which you don't:
except Exception:
This handles all exceptions (that you should handle except for ones that you shouldn't).
except OSError:
This handles all errors coming from interactions with the OS.
except FileNotFoundError:
This very specifically handles the case where files aren't found, but not for example PermissionError, which is a separate error within the OSError hierarchy.
You should only handle exceptions when you have a plan what to do with them, and otherwise let them bubble up to either be handled by a higher caller, or let the program terminate if there's an unhandleable error that your program can't do anything about.
Using that hierarchy properly, and defining your own exceptions in a proper hierarchy, makes error handling much easier and your code more maintainable in the long run.
tryandexceptyet?