使用一個文字檔案作為其他帶有表單的文字檔案的修改“範本”

使用一個文字檔案作為其他帶有表單的文字檔案的修改“範本”

(為了更清楚地重新表達問題。)

假設我有 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)

相關內容