Usando um arquivo de texto como um 'estêncil' modificado para outros arquivos de texto com formulários

Usando um arquivo de texto como um 'estêncil' modificado para outros arquivos de texto com formulários

(reformulando a pergunta para melhor clareza.)

Suponha que eu tenha 1.000 arquivos de texto. Cada arquivo é um formato textual, com descrições de campos e cabeçalhos fixos, mas os dados são diferentes. Por exemplo, arquivo 1:

The Foo Factory             Date:  2015-10-02

Order Details
-------------------------
Order ID:          [   1    ]  Amount: [   1 ]
Order Price:       [  12.34 ]

Have a nice day.

e arquivo 2:

The Foo Factory             Date:  2016-01-11

Order Details
-------------------------
Order ID:          [   7    ]  Amount: [  17 ]
Order Price:       [ 543.21 ]

Have a nice day.

etc. Agora, suponha que eu tenha traduzido as descrições dos campos para o francês; e eu apaguei os valores. Então agora eu tenho:

L'usine Foo                 Date:            

Détails de commande
-------------------------
Nm.du Commande:   [        ]  Montant: [     ]
Prix du Commande: [        ]

Bonne journée.

Eu realmente não falo francês, então ignore qualquer erro aqui. De qualquer forma, as posições de todos os campos são exatamente as mesmas, mas o texto que não é o valor do campo é diferente. Quero aplicar esta substituição a todos os arquivos. Como faço para conseguir isso?

Responder1

Você já gerou o mapa de formatação, então o único trabalho restante é a substituição de regex. Gerar o mapa é mais difícil, especialmente para textos maiores e mais complicados. eu usoTexto sublimepor isso. Mas o caso de uso e mais informações não estão claros aqui, você deve levá-los para softwarerecs.SE se for importante. De qualquer forma, estou incluindo uma versão Python:

 

# -*- coding: utf-8 -*-
import os

SOURCE_DIRECTORY = ''
DEST_DIRECTORY = ''

replacements = ["L'usine Foo                 ",
"Détails de commande",
"Nm.du Commande:   ",
"Montant: ",
"Prix du Commande: ",
"Bonne journée."]

samples = ["The Foo Factory             ",
"Order Details",
"Order ID:          ",
"Amount: ",
"Order Price:       ",
"Have a nice day."]

for filename in os.listdir(SOURCE_DIRECTORY):
    with open(os.path.join(SOURCE_DIRECTORY, filename), 'r') as nctn:
        text = nctn.read()
    for i, val in enumerate(samples):
        text = text.replace(val, replacements[i])
    with open(os.path.join(DEST_DIRECTORY, filename), 'w') as nctn:
        nctn.write(text)

informação relacionada