.docx ドキュメントで検索と置換機能を実行しました。モジュール python-docx を使用します。
# -*- coding: utf-8 -*-
from docx import *
document = opendocx('test.docx')
TAG_LIST=[u'TAG1',u'TAG2',u'TAG3']
VALUE_LIST=[u'TEST1',u'TEST2',u'TEST3']
def search(document):
result = False
for element in document.iter():
if element.text == '{':
result=True
if result and element.text != '}':
for i in range(0,len(TAG_LIST)):
if element.text == TAG_LIST[i]:
element.text=re.sub(TAG_LIST[i], VALUE_LIST[i], element.text)
print(element.text)
search(document)
この関数は、 内のドキュメント タグを見つけて{}
、 で検証し、 にTAG_LIST
置き換えVALUE_LIST
ます。element.text
関数の後で保存したいのですre.sub
が、方法がわかりません。のテキスト全体を読み取ってから置換を実行できることはわかっていますがdocument.xml
、テキストをバッファにロードすると多くのメモリが消費されます。それを行う方法はありますか?