Pythonを使用してWordでテキストを検索して置換する

多くの場合、Word文書の特定のテキストまたはフレーズを置き換える必要があります。 MS Wordにはこのような場合の機能が組み込まれており、ワンクリックで目的のテキストを置き換えることができます。この記事では、Pythonを使用してWord文書内のテキストをプログラムで検索して置換する方法を学習します。これは、大量のドキュメントのテキストを置き換える必要がある場合に役立ちます。また、この機能をPythonアプリケーションに埋め込んで、共有する前にWord文書を検閲することもできます。

Word文書のテキストを置き換えるPythonライブラリ

DOCXまたはDOCファイル内のテキストを検索して置き換えるには、Aspose.Words for Pythonを使用します。これは、MSWordドキュメントをシームレスに作成および操作できる機能豊富なPythonライブラリです。次のpipコマンドを使用して、PyPIからライブラリをインストールできます。

pip install aspose-words

Pythonを使用してWord文書内のテキストを検索して置換する

以下は、Pythonを使用してWord文書内のテキストを検索して置換する手順です。

  • Documentクラスを使用してドキュメントをロードします。
  • Document.range.replace(string, string, aw.replacing.FindReplaceOptions(aw.replacing.FindReplaceDirection.FORWARD))メソッドを使用して、テキストを置き換えます。
  • Document.save(string)メソッドを使用して、更新されたドキュメントを保存します。

次のコードサンプルは、Pythonを使用してDOCXドキュメント内の特定のテキストを置き換える方法を示しています。

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ドキュメントです。

以下は、テキストを置き換えた後に更新されたWord文書です。

Pythonを使用してWord文書のテキストを置き換える

テキストを置き換えた後にWord文書を更新

正規表現を使用してWord文書のテキストを置き換える

場合によっては、特定のパターンに一致するテキストを置き換えたいことがあります。たとえば、オンラインで共有する前に、ドキュメントに記載されている電子メールアドレスを省略したい場合があります。このような場合、一致するテキストオカレンスを置き換える正規表現を指定できます。正規表現に基づいてWord文書のテキストを置き換える手順は次のとおりです。

  • Documentクラスを使用してドキュメントをロードします。
  • FindReplaceOptionsクラスのオブジェクトを作成します。
  • Document.range.replace_regex(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")

以下は、RegExを使用してテキストを置き換えた後のWordドキュメントのスクリーンショットです。

正規表現を使用してWordのテキストを置き換える

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

続きを読むPythonを使用したWord文書内のテキストの検索と置換について。

無料のAPIライセンスを取得する

評価の制限なしにAspose.Words for Pythonを使用するために、一時ライセンスを取得することができます。

結論

この記事では、Pythonを使用してWord文書内のテキストを検索および置換する方法を学習しました。それに加えて、正規表現とメタ文字を使用してWord文書のテキストを置き換える方法も確認しました。これに加えて、ドキュメントを使用して、Aspose.Words for Pythonが提供する他の機能を調べることができます。また、フォーラムに質問を投稿することもできます。

関連項目

情報:Asposeは最近、無料のオンラインText to GIFサービスを開発しました。このサービスを使用すると、テキストをアニメーション化したり、単純なテキストからGIFを生成したりできます。