<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def readlines(p, encoding=None, strip=False, comment=None, normalize=None, linenumbers=False):
 """ Read a `list` of lines from a text file. :param p: File path (or `list` or `tuple` of text) :param encoding: Registered codec. :param strip: If `True`, strip leading and trailing whitespace. :param comment: String used as syntax to mark comment lines. When not `None`, \ commented lines will be stripped. This implies `strip=True`. :param normalize: 'NFC', 'NFKC', 'NFD', 'NFKD' :param linenumbers: return also line numbers. :return: `list` of text lines or pairs (`int`, text or `None`). """

    if comment:
        strip = True
    if isinstance(p, (list, tuple)):
        res = [l.decode(encoding) if encoding else l for l in p]
    else:
        with Path(p).open(encoding=encoding or 'utf-8') as fp:
            res = fp.readlines()
    if strip:
        res = [l.strip() or None for l in res]
    if comment:
        res = [None if l and l.startswith(comment) else l for l in res]
    if normalize:
        res = [unicodedata.normalize(normalize, l) if l else l for l in res]
    if linenumbers:
        return [(n, l) for n, l in enumerate(res, 1)]
    return [l for l in res if l is not None]