Localizar e substituir texto no Word usando Python

Muitas vezes, você precisa substituir um determinado texto ou frase nos documentos do Word. O MS Word possui um recurso interno para esses casos e você pode substituir o texto desejado com um clique. Neste artigo, você aprenderá como localizar e substituir texto programaticamente em documentos do Word usando Python. Isso pode ser útil quando você precisa substituir o texto em vários documentos. Além disso, você pode incorporar esse recurso em seus aplicativos Python para censurar os documentos do Word antes de compartilhar.

Biblioteca Python para substituir texto em documentos do Word

Para localizar e substituir texto em arquivos DOCX ou DOC, usaremos Aspose.Words for Python. É uma biblioteca Python rica em recursos que permite criar e manipular documentos do MS Word sem problemas. Você pode instalar a biblioteca de PyPI usando o seguinte comando pip.

pip install aspose-words

Localizar e substituir texto em um documento do Word usando Python

A seguir estão as etapas para localizar e substituir texto em um documento do Word usando Python.

  • Carregue o documento usando a classe Document.
  • Use o método Document.range.replace(string, string, aw.replaceing.FindReplaceOptions(aw.replaceing.FindReplaceDirection.FORWARD)) para substituir o texto.
  • Salve o documento atualizado usando o método Document.save(string).

O exemplo de código a seguir mostra como substituir um texto específico em um documento DOCX usando 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")

A seguir está o documento do Word de entrada que usamos neste exemplo.

Input Word Document

Input Word Document

A seguir está o documento do Word atualizado após a substituição do texto.

Substituir um texto no documento do Word usando Python

Documento do Word atualizado após substituir o texto

Substituir texto em documentos do Word usando expressão regular

Em alguns casos, convém substituir o texto que corresponde a um padrão específico. Por exemplo, você pode omitir os endereços de e-mail escritos nos documentos antes de compartilhá-los online. Para esses casos, você pode especificar uma expressão regular para substituir as ocorrências de texto correspondentes. A seguir estão as etapas para substituir texto em documentos do Word com base em uma expressão regular.

  • Carregue o documento usando a classe Document.
  • Crie um objeto da classe FindReplaceOptions.
  • Substitua o texto com base na expressão regular usando o método Document.range.replaceregex(string, string, FindReplaceOptions).
  • Salve o documento atualizado usando o método Document.save(string).

O exemplo de código a seguir mostra como substituir texto em um documento do Word usando uma expressão regular.

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")

A seguir está a captura de tela do documento do Word depois de substituir o texto usando um RegEx.

Substituir texto no Word usando Regex

Python: Substituir texto em documentos do Word usando metacaracteres

Em alguns casos, um pedaço de texto pode ser composto de diferentes parágrafos, seções ou páginas. Para substituir essas frases, você precisa usar os seguintes metacaracteres.

  • &p para uma quebra de parágrafo
  • &b para uma quebra de seção
  • &m para uma quebra de página
  • &l para uma quebra de linha

O exemplo de código a seguir mostra como usar metacaracteres para localizar e substituir texto em documentos do 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")

Leia mais sobre como localizar e substituir texto em documentos do Word usando Python.

Obtenha uma licença de API gratuita

Você pode obter uma licença temporária para usar o Aspose.Words for Python sem limitações de avaliação.

Conclusão

Neste artigo, você aprendeu como localizar e substituir texto em documentos do Word usando Python. Além disso, você também viu como usar RegEx e metacaracteres para substituir texto em documentos do Word. Além disso, você pode explorar outros recursos oferecidos pelo Aspose.Words for Python usando a documentação. Além disso, você pode postar suas perguntas em nosso fórum.

Veja também

Informação: A Aspose desenvolveu recentemente um serviço online gratuito Text to GIF que permite animar textos ou gerar GIFs a partir de textos simples.