LibreOffice, odt файлы пакетного поиска и замены

Я использую LibreOffice Writer (версия: 5.0.1.2) для Windows 7, и у меня есть несколько файлов, в которых мне нужно заменить текст... Я не могу найти способ поиска и замены во многих файлах в большом количестве.

1 ответ

Я создал скрипт Python, который может помочь. В этом примере я запрашиваю данные для заполнения различных файлов, затем создаю каталог проекта и записываю новый файл с обновленными переменными.

«дата», «project_description» и «клиент» — мои переменные.

Я уверен, что это можно адаптировать для вашего решения. если у вас есть более конкретный вариант использования, я могу обновить свой код.

      from docxtpl import DocxTemplate
from datetime import date
today = date.today()

destination_folder = raw_input("Supply a name for the folder ? ")
if not destination_folder:
    destination_folder = 'SBD_templates (copy)'

document_date = raw_input("What is the document date (default : " + today.strftime(" %d %B %Y") + ") ? ")
if not document_date:
    document_date = today.strftime(" %d %B %Y")

document_project = raw_input("What is the project name ? ")
if not document_project:
    document_project = 'Project Not supplied'

document_client = raw_input("What is the client name ? ")
if not document_client:
    document_client = 'Client Not supplied'

context = { 'date' : document_date , 'project_description' : document_project, 'client' : document_client }


# Copy the template directory

from distutils.dir_util import copy_tree

# copy subdirectory example
fromDirectory = "./SBD_templates"
toDirectory = "./" + destination_folder

copy_tree(fromDirectory, toDirectory)


doc = DocxTemplate(destination_folder + "/SBD_4.docx")
doc.render(context)
doc.save(destination_folder + "/05_SBD_4.docx")


doc = DocxTemplate(destination_folder + "/SBD_6_1.docx")
doc.render(context)
doc.save(destination_folder + "/06_SBD_6_1.docx")


doc = DocxTemplate(destination_folder + "/SBD8.docx")
doc.render(context)
doc.save(destination_folder + "/07_SBD8.docx")

doc = DocxTemplate(destination_folder + "/SBD9.docx")
doc.render(context)
doc.save(destination_folder + "/08_SBD9.docx")
Другие вопросы по тегам