Dicas para ler em um arquivo complexo - Python

Tenho arquivos de texto variáveis e complexos que quero ler no Python, mas não tenho certeza de qual seria a melhor estratégia. Não estou procurando que você codifique nada para mim, apenas algumas dicas sobre quais módulos melhor atendem às minhas necessidades / dicas etc.

Os arquivos são parecidos com:

Program
Username: X    Laser: X     Em: X

exp 1
    sample 1
        Time: X    Notes: X
        Read 1 X data
        Read 2 X data
        # unknown number of reads
    sample 2
        Time: X    Notes: X
        Read 1 X data
        ...
    # Unknown number of samples

exp 2
    sample 1
    ...
# Unknown number of experiments, samples and reads
# The 4 spaces between certain words represent tabs

Para analisar esses dados, preciso obtê-los para cada leitura e saber de qual amostra e experimento ele veio. Além disso, posso alterar o formato do arquivo de saída, mas acho que a maneira como escrevi aqui é a mais fácil de ler.

Para ler este arquivo no Python, a melhor maneira de pensar seria lê-lo linha por linha e procurar palavras-chave com expressões regulares. Por exemplo, pesquise na linha a palavra-chave "exp" e, em seguida, registre o número após ela; procure amostra na próxima linha e assim por diante. No entanto, é claro que isso não funcionaria se uma palavra-chave fosse usada na seção 'notas'.

Então, eu estou meio confuso quanto ao que melhor atenderia às minhas necessidades (é difícil usar algo se você não sabe que existe!)

Obrigado pelo seu tempo.

questionAnswers(1)

yourAnswerToTheQuestion