【5分でわかる】PythonでWordをテキストファイルに変換する方法

 

【悩み】
・PythonでWord文書をテキストファイルへ変換したい。
・どのPythonライブラリを使うべきかを知りたい。
・データ分析の準備や大量のWord変換にかかる時間を短縮したい。



こういった「悩み」に答えます。
 

【本記事の内容】
① Wordをテキストファイルへ変換できるPythonライブラリ
➁ 事前準備:各種インストール
➂ PythonでWord文書をテキストファイルへ変換
④ ご紹介したテキストファイル変換プログラムの応用例



本記事に掲載した方法を実践したことで、Pythonを使ってWord文書(docxやdocファイル)をテキストファイル(拡張子.txt)に変換できました(下の動画参照)。
 



記事の前半では「Wordをテキストファイルへ変換するために使えるPythonライブラリの一覧」と「ライブラリのインストール方法などの環境準備」について解説します。

記事の後半では「Wordをテキストファイルに変換するPythonプログラム」と「作成したPythonプログラムの応用例」を説明します。
  

この記事を読み終えることで、「テキストファイル形式しか扱えないデータ分析ツールに対してWord文書を利用できる」状態になります。
 

ちなみに、「新規作成」「編集」「抽出」といった操作もPythonで実施できます。以下の記事にまとめているので興味がある方は是非ご覧ください。


 

Wordをテキストファイルへ変換できるPythonライブラリ


PythonでWordをテキストファイルに変換したい場合、いくつかのライブラリを使う方法があります。今回は、よく使われる2つのライブラリを紹介します。
 

【ご紹介事項】
・ライブラリ2選
・Aspose.Wordsとは:商用なため高品質
・python-docx:OSSライブラリ


 

ライブラリ2選

PythonでWord文書をテキストファイルに変換したい場合、以下のライブラリがよく使われます。
 

名称サポートOSライセンス公式サイト
Aspose.WordsWindows、MacOS、Linux商用のため有料Aspose英語サイト
python-docxWindows、MacOS、LinuxMITpypiのサイト



本記事では、上記2つのライブラリに関して詳しく解説します。
 

Aspose.Wordsとは:商用なため高品質

PythonでWord文書をテキストファイルに変換したい場合、「Aspose.Words」ライブラリを使う方法があります。

以下の記事でライブラリのライセンスや概要をご紹介しています。気になる方は、ぜひ読んでみてください。

>>【5分でわかる】PythonでWordを新規作成する方法
 

python-docx:OSSライブラリ

PythonでWord文書をテキストファイルに変換したい場合、「python-docx」ライブラリを使う方法があります。

以下の記事でライブラリのライセンスや概要をご紹介しています。気になる方は、ぜひ読んでみてください。

>>【5分でわかる】PythonでWordを新規作成する方法


 

以降で、環境準備を説明します。Pythonやライブラリのインストール手順を丁寧に解説しますね。


 

事前準備:各種インストール


「PythonでWordをテキストファイルに変換するための準備」に関してご紹介します。
 

【流れ】
手順1:Pythonのインストール
手順2:Aspose.Wordsのインストール
手順3:python-docxのインストール
手順4:Word文書のオブジェクト構造



上記の流れで説明します。
 

Pythonのインストール

以下の記事を参考にし、お使いのパソコンやサーバーにPythonをインストールしましょう。

>> 【ubuntu向け】pyenvでPythonをインストールする手順【簡単】

>> 【コピペOK】pyenvでPythonをインストールする手順【Linux用】

>> 【最短5分】PyAutoGUIをWindowsにインストールする手順の「手順1:Pythonのインストール」を参照

>> 【環境構築】インストーラーでMacOSにPythonをインストール

 

Aspose.Wordsのインストール

Aspose.Wordsライブラリのインストール手順に関しては、以下の記事の「Aspose.Wordsのインストール」箇所をご覧ください。

>> 【5分でわかる】PythonでWordからテキストを抽出:3事例解説
 

python-docxのインストール

python-docxライブラリのインストール手順に関しては、以下の記事の「python-docxとbayoo-docxのインストール」箇所をご覧ください。

>>【5分でわかる】PythonでWordを新規作成する方法

 

Word文書のオブジェクト構造

Word文書は、以下のWordprocessingML(略称:WML)という言語で作成されます。WMLの構造を把握しておくことで、Pythonで細かいWord操作を実現できます。

WMLの詳細に関しては、以下の記事の「Word文書のオブジェクト構造」箇所をご覧ください。

>>【5分でわかる】PythonでWordを新規作成する方法
 

以降で、Pythonを使ってWordをテキストファイルに変換しファイルに出力するプログラムとその実行結果を解説します。


 

PythonでWord文書をテキストファイルへ変換


「PythonでWord文書をテキストファイルへ変換する方法」に関してご紹介します。
 

【ご紹介事項】
・Aspose.Wordsライブラリを使用する場合
・python-docxライブラリを使用する場合



以降で、以下「sample.docx」のWordファイルを用いて、上記の各項目に関して説明します。


 

Aspose.Wordsライブラリを使用する場合

Aspose.Wordsライブラリを使って、Word文書をテキストファイルに変換するプログラムに関しては、以下の公式サイトをご覧ください。

>> WORDをTXT Python変換 Python(Aspose.Wordsの公式サイト)
 

python-docxライブラリを使用する場合

「python-docxを使ってWordをテキストファイルに変換する」Pythonプログラムの流れは、以下となります。
 

【プログラムの流れ】
1. Word文書を開く
2. Word文書からテキストを抽出する
3. テキストファイルへ出力する



上記の流れを踏まえたPythonプログラムは、以下となります。

import docx

# 変換したいWordのPATH
word_file_path = './sample.docx'

# テキストファイルの出力先
txt_file_path = './output/sample.txt'

# 1. Word文書を開く
doc = docx.Document(word_file_path)

# 2. Word文書からテキストを抽出する
text_list = []
for para in doc.paragraphs:
    text_list.append(para.text)

# 3. テキストファイルへ出力する
txt_file = open(txt_file_path, 'w', encoding="utf-8")
for text in text_list:
  txt_file.write(text)
  txt_file.write('\r\n')
txt_file.close()


上記のプログラムを「convert-word-to-text.py」というファイル名で保存しましょう。
 

上記では、コメントやテーブル(表)のテキストをテキストファイルへ変換できません。変換したい場合は、以下を参考にプログラムを改良しましょう。
【5分でわかる】PythonでWordからテキストを抽出:3事例解説
【5分でわかる】PythonでWordからテーブルを抽出:応用例も解説



以下のコマンドで、上記プログラムを実行できます。

python convert-word-to-text.py


その結果、以下のようにWordをテキストファイルに変換できます(下の動画参照)。


 

上記のようにAspose.Wordsまたはpython-docxを使うことでテキストファイルに変換できます。python-docxで実現する場合、少しプログラミングが必要です。


 

ご紹介したテキストファイル変換プログラムの応用例


ご紹介したテキストファイル変換用のライブラリを使うことで様々な作業を効率化できます。例えば、以下のような応用例が考えられます。
 

【応用例】
データ分析ツールの制約でテキストファイル変換が必要!大量にあるWordファイルをテキストファイルへ変換する作業の時間短縮を実現できる。



上記の応用例に対して、本記事でご紹介したプログラムを適用することで、下の図のように時間短縮を実現できます。
 


 

上記のようにご紹介したライブラリとPythonをうまく使うことで、様々な作業を自動化し時短を実現できます。



Pythonを使うことで、Word文書をHTMLに変換できることを説明しました。このPythonを使うことで、あらゆる業務や作業を自動化できます。
その事例やヒントを知りたい方には、以下の本がオススメです。

 



ちなみに、上記教材の詳細なレビューに関しては、以下のサイトにまとめています。

>> 「退屈なことはPythonにやらせよう」のレビューの一覧


 

【まとめ】2つのライブラリでテキストファイル変換を実現!


いかがでしたでしょうか?

上記で紹介したAspose.Wordsやpython-docxライブラリを使うことで、PythonでWord文書をテキストファイルに変換できます。

最後にもう一度内容を確認しましょう。
 

【おさらい】
・PythonでWordをテキストファイルに変換したい場合、
 python-docxやAspose.Wordsを使う
・python-docxの場合、Wordの構造を理解したい上でプログラム作成が必要
・Pythonとご紹介したライブラリを使うことでデータ分析業務の時短が可能



ちなみに、「新規作成」「編集」「変換」「抽出」といった操作もPythonで実施できます。以下の記事にまとめているので興味がある方は是非ご覧ください。



本ブログでは、「業務の時短化に繋がるIT技術」や「クラウドやOSSの学び方」などを発信しています。定期的に更新していますので、ぜひブックマークをよろしくお願いいたします。

>> IT技術やその学び方を発信しているサイト「駆け出し物語」(本ブログ)
 

コメント