(더 나은 명확성을 위해 질문을 다시 표현했습니다.)
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)