def readTable(path, sep='\t', header=True, skipCommented=True, keys=[]):
    """Read a table in a file, and generate a list of strings per row.
	Skips rows starting with "#".

	sep (str): field separator.
	header (bool): presence of a header, to discard the first row.
	"""
    headerRead = False
    with open(path) as FILE:
        for line in FILE:
            if line[0] == '#' and skipCommented:
                continue
            elif header and not headerRead:
                if not keys:
                    keys = line.strip().split(sep)
                headerRead = True
                continue
            values = line.strip('\n').split(sep)
            if keys:
                if len(values) < len(keys):
                    raise Exception('Parsing error in file {}, line {}.'.
                        format(path, line))
                yield dict(zip(keys, values))
            else:
                yield values
