Home » Python » python-docxの使い方 » python-docxでWord文書の見出し文字列を取得する

python-docxでWord文書の見出し文字列を取得する

動作検証バージョン:64bit版 Windows 10 Pro + Python 3.8.0 + python-docx 0.8.10

段落スタイルを活用してWordで長文を書いていると、見出しの文字列だけを確認したいというシーンが、結構あります。

python-docxを使って、見出し文字列だけを取得することもできます。

[スポンサードリンク]

見出しの文字列を取得するサンプル

以下のスクリプトを実行すると、Cドライブtempフォルダーに存在するsample_headings.docxの、見出し1と見出し2の文字列だけがprintされます。

import docx

doc = docx.Document(r'C:\temp\sample_headings.docx')

for para in doc.paragraphs:
    sty_name = para.style.name
    if sty_name.startswith('Heading'):
        if sty_name.endswith('1'):
            print(para.text)
        if sty_name.endswith('2'):
            print('\t' + para.text)

見出し1の場合はそのまま文字列をprintし、見出し2の場合にはタブ文字を先頭に入れています。
          if sty_name.endswith('2'):
              print('\t' + para.text)

サンプルスクリプトで行っている処理

見出しの段落_ParagraphStyle.nameを確認すると「Heading 1」「Heading 2」ですので、str.startswith()メソッドを使って名前が「Heading」で始まるときに見出しの段落と判定して、
      sty_name = para.style.name
      if sty_name.startswith('Heading'):

str.endwith()メソッドで取得した末尾1文字でレベルを判定して、出力方法を変更しています。
          if sty_name.endswith('1'):
              print(para.text)
          if sty_name.endswith('2'):
              print('\t' + para.text)

最終更新日時:2020-03-16 10:59

[スポンサードリンク]

Home » Python » python-docxの使い方 » python-docxでWord文書の見出し文字列を取得する

「python-docxの使い方」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.