Поиск и замена текста в Word с помощью Python

Довольно часто возникает необходимость заменить тот или иной текст или фразу в документах Word. В MS Word есть встроенная функция для таких случаев, и вы можете заменить нужный текст одним щелчком мыши. В этой статье вы узнаете, как программно находить и заменять текст в документах Word с помощью Python. Это может быть полезно, когда вам нужно заменить текст в куче документов. Кроме того, вы можете внедрить эту функцию в свои приложения Python, чтобы подвергать цензуре документы Word перед отправкой.

Библиотека Python для замены текста в документах Word

Чтобы найти и заменить текст в файлах DOCX или DOC, мы будем использовать Aspose.Words for Python. Это многофункциональная библиотека Python, которая позволяет легко создавать документы MS Word и управлять ими. Вы можете установить библиотеку из PyPI с помощью следующей команды pip.

pip install aspose-words

Найти и заменить текст в документе Word с помощью Python

Ниже приведены шаги по поиску и замене текста в документе Word с помощью Python.

  • Загрузите документ, используя класс Document.
  • Используйте метод Document.range.replace(string, string, aw.replacing.FindReplaceOptions(aw.replacing.FindReplaceDirection.FORWARD)) для замены текста.
  • Сохраните обновленный документ с помощью метода Document.save(string).

В следующем примере кода показано, как заменить определенный текст в документе DOCX с помощью Python.

import aspose.words as aw

# load Word document
doc = aw.Document("document.docx")

# replace text
doc.range.replace("sad", "[replaced]", aw.replacing.FindReplaceOptions(aw.replacing.FindReplaceDirection.FORWARD))

# save the modified document
doc.save("updated.docx")

Ниже приведен входной документ Word, который мы использовали в этом примере.

Input Word Document

Input Word Document

Ниже представлен обновленный документ Word после замены текста.

Заменить текст в документе Word с помощью Python

Обновленный документ Word после замены текста

Заменить текст в документах Word с помощью регулярного выражения

В некоторых случаях может потребоваться заменить текст, соответствующий определенному шаблону. Например, вы можете опустить адреса электронной почты, указанные в документах, прежде чем публиковать их в Интернете. В таких случаях вы можете указать регулярное выражение для замены совпадающих вхождений текста. Ниже приведены шаги по замене текста в документах Word на основе регулярного выражения.

  • Загрузите документ, используя класс Document.
  • Создайте объект класса FindReplaceOptions.
  • Замените текст на основе регулярного выражения, используя метод Document.range.replaceregex(string, string, FindReplaceOptions).
  • Сохраните обновленный документ с помощью метода Document.save(string).

В следующем примере кода показано, как заменить текст в документе Word с помощью регулярного выражения.

import aspose.words as aw

# load Word document
doc = aw.Document("document.docx")

# replace text using RegEx
options = aw.replacing.FindReplaceOptions()
doc.range.replace_regex("[s|m]ad", "bad", options)

# save the modified document
doc.save("updated.docx")

Ниже приведен снимок экрана документа Word после замены текста с помощью RegEx.

Заменить текст в Word с помощью Regex

Python: замена текста в документах Word с помощью метасимволов

В некоторых случаях фрагмент текста может состоять из разных абзацев, разделов или страниц. Чтобы заменить такие фразы, вам нужно использовать следующие метасимволы.

  • &p для разрыва абзаца
  • &b для разрыва раздела
  • &m для разрыва страницы
  • &l для разрыва строки

В следующем примере кода показано, как использовать метасимволы для поиска и замены текста в документах Word.

import aspose.words as aw

# load Word document
doc = aw.Document("document.docx")

# create options
findReplaceOptions = aw.replacing.FindReplaceOptions()
findReplaceOptions.apply_paragraph_format.alignment = aw.ParagraphAlignment.CENTER

# double each paragraph break after word "section", add kind of underline and make it centered.
count = doc.range.replace("section&p", "section&p----------------------&p", findReplaceOptions)

# insert section break instead of custom text tag.
count = doc.range.replace("insert-section", "&b", findReplaceOptions)

# save the modified document
doc.save("updated.docx")

Подробнее о поиске и замене текста в документах Word с помощью Python.

Получите бесплатную лицензию API

Вы можете получить временную лицензию, чтобы использовать Aspose.Words for Python без ограничений на пробную версию.

Вывод

В этой статье вы узнали, как находить и заменять текст в документах Word с помощью Python. В дополнение к этому вы также видели, как использовать RegEx и метасимволы для замены текста в документах Word. Помимо этого, вы можете изучить другие функции, предлагаемые Aspose.Words для Python, используя документацию. Также вы можете задавать свои вопросы на нашем форуме.

Смотрите также

Информация: Aspose недавно разработала бесплатный онлайн-сервис Text to GIF, который позволяет анимировать тексты или создавать GIF-файлы из простых текстов.