fundindo fragmento de texto curto em sentença longa [fechado]

0

Gostaria de colocar os pequenos fragmentos de texto na sentença longa, como segue

Frase input_full

TRSTUVWSRTPSAREWSTRESW 

lista de fragmentos curtos

TRST 
RESW

Saída

Eu quero a saída de modo que, onde quer que os fragmentos curtos combinem, ela possa ser visível e colocada exatamente abaixo da frase longa

TRSTUVWSRTPSAREWSTRESW 
||||              |||| 
TRST              RESW
    
por Trupti 17.01.2017 / 15:56

1 resposta

1

Com algum python:

#! /usr/bin/python3

import sys

textfile = 'input.txt'
patfile = 'patterns.txt'

with open(textfile) as text:
    with open(patfile) as pat:
        patterns = [line.strip() for line in pat]

        for line in text:
            line = line.strip()
            print(line)
            out = line[:]
            for p in patterns:
                out = out.replace(p, '|'*len(p))
            print(''.join(v if v == '|' else ' ' for v in out))
            print(''.join(line[k] if v == '|' else ' ' for k, v in enumerate(out)))

Essencialmente, isso acontece para cada linha no arquivo de entrada:

  1. Imprime a linha e faz uma cópia.
  2. Para cada padrão, substitua as ocorrências do padrão na linha por | na cópia.
  3. Em seguida, imprime a cópia com tudo, exceto | substituído por espaços.
  4. Em seguida, ele imprime o caractere da linha original sempre que | ocorre na cópia ou em espaços diferentes.

Eu assumo que os padrões são sequências fixas que não contêm | .

    
por muru 17.01.2017 / 17:17