(より明確にするために質問を言い換えます。)
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)