Verwenden einer Textdatei als modifizierte „Schablone“ für andere Textdateien mit Formularen

Verwenden einer Textdatei als modifizierte „Schablone“ für andere Textdateien mit Formularen

(Umformulierung der Frage zur besseren Verständlichkeit.)

Angenommen, ich habe 1000 Textdateien. Jede Datei ist eine Textdatei mit festen Feldbeschreibungen und Überschriften, aber die Daten sind unterschiedlich. Beispiel: Datei 1:

The Foo Factory             Date:  2015-10-02

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

Have a nice day.

und Datei 2:

The Foo Factory             Date:  2016-01-11

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

Have a nice day.

usw. Nehmen wir nun an, ich habe die Feldbeschreibungen ins Französische übersetzt und die Werte gelöscht. Jetzt habe ich also:

L'usine Foo                 Date:            

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

Bonne journée.

Ich spreche nicht wirklich Französisch, also ignorieren Sie alle Fehler hier. Wie auch immer, die Positionen aller Felder sind genau gleich, aber der Text, der kein Feldwert ist, ist anders. Ich möchte diesen Ersatz auf alle Dateien anwenden. Wie erreiche ich das?

Antwort1

Sie haben die Formatierungszuordnung bereits erstellt, sodass nur noch die Regex-Ersetzung übrig bleibt. Das Erstellen der Zuordnung ist schwieriger, insbesondere bei längeren, komplizierteren Texten. Ich verwendeErhabener Textdafür. Aber der Anwendungsfall und weitere Informationen sind hier nicht klar, Sie sollten es auf softwarerecs.SE nachschlagen, wenn es wichtig ist. Ich füge trotzdem eine Python-Version bei:

 

# -*- 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)

verwandte Informationen