akuruhinode's blog

pythonやC#を中心に興味を持った内容について調べています。

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

はじめに

Wordで作成した文書をテキストファイルに変換するスクリプトを紹介します。python-docxを利用するので、インストールされていない場合は以下のコマンドでインストールしてください。

pip install python-docx

バージョン情報

python: 3.7.9
python-docx: 0.8.10

ソースコード

ソースコードと使用例、引数と補足説明は以下の通りです。

メインの処理

import docx

# Word文書をテキストファイルに変換
def docx2txt(docxfile, txtfile):

    full_text = []

    # wordファイルの読み込み
    doc = docx.Document(docxfile)
    # 各段落を取得
    for para in doc.paragraphs:
        # paragraphオブジェクトのtext属性からテキスト文字列を取得
        full_text.append(para.text)

    # 改行文字でリストを連結して文字列に変換
    doc_text = '\n'.join(full_text)
    # print(doc_text)

    # テキストファイルとして保存
    file_for_save = open(txtfile, 'w', encoding="utf-8")
    file_for_save.write(doc_text)
    file_for_save.close()

使用例

docx2txt('sample.docx', 'sample.txt')

引数

  • docxfile:Wordファイル名(入力)
  • txtfile:テキストファイル名(出力)

補足

関数内の主要な処理はコメントの通りです。
python-docxを利用してWordファイルを読み込んだ場合、ファイルの内容はparagraphというオブジェクトのリストで構成されています。

paragraphは一つの段落を示しており、いくつかの属性を持ちます。例えばtextはテキスト文字列です。他には文書のスタイルに関する属性などがあります。
詳しくは以下の公式HPを参考にしてください。

python-docx.readthedocs.io

その他のWord関連スクリプト

ここでは文書内のすべての文字列を抽出しましたが、見出し部分のみ抽出するスクリプトはこちらの記事で紹介しています。
Python Word文書の見出しをテキストファイルに変換 - akuruhinode's blog