Использование одного текстового файла в качестве измененного «трафарета» для других текстовых файлов с формами

Использование одного текстового файла в качестве измененного «трафарета» для других текстовых файлов с формами

(перефразирую вопрос для большей ясности.)

Предположим, у меня есть 1000 текстовых файлов. Каждый файл — это текстовая форма с фиксированными описаниями полей и заголовками, но данные разные. Например, файл 1:

The Foo Factory             Date:  2015-10-02

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

Have a nice day.

и файл 2:

The Foo Factory             Date:  2016-01-11

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

Have a nice day.

и т. д. Теперь предположим, что я перевел описания полей на французский язык и удалил значения. Итак, теперь у меня есть:

L'usine Foo                 Date:            

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

Bonne journée.

Я не очень хорошо говорю по-французски, поэтому не обращайте внимания на ошибки. В любом случае, позиции всех полей абсолютно одинаковы, но текст, не являющийся значением поля, отличается. Я хочу применить эту замену ко всем файлам. Как мне этого добиться?

решение1

Вы уже сгенерировали карту форматирования, поэтому единственное, что осталось сделать, это заменить регулярное выражение. Генерация карты сложнее, особенно для более объемного и сложного текста. Я используюВозвышенный текстдля этого. Но вариант использования и дополнительная информация здесь не ясны, вам следует обратиться к softwarerecs.SE, если это важно. Я в любом случае включаю версию 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)

Связанный контент