According to an article I've read inside Python magazine, Aperiot seems to be one the best parser out there for Python.
State machine for processing text files on a line-by-line basis using regular
expressions to determine transition to next state, developed from sample code from "Text Processing in Python" by David Mertz,pp. 274-280. Line Oriented State Machine