'Execute the parse expression on the given file or filename.
If a filename is specified (instead of a file object),
the entire file is opened, read, and closed before parsing.'

def parseFile(self, file_or_filename, parseAll=False):

    try:
        file_contents = file_or_filename.read()
    except AttributeError:
        f = open(file_or_filename, 'r')
        file_contents = f.read()
        f.close()
    try:
        return self.parseString(file_contents, parseAll)
    except ParseBaseException as exc:
        if ParserElement.verbose_stacktrace:
            raise
        else:
            raise exc
