段落スタイルを活用してWordで長文を書いていると、見出しの文字列だけを確認したいというシーンが、結構あります。
python-docxを使って、見出し文字列だけを取得することもできます。
見出しの文字列を取得するサンプル
以下のスクリプトを実行すると、Cドライブtempフォルダーに存在するsample_headings.docxの、見出し1と見出し2の文字列だけがprintされます。
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文書の見出し文字列を取得する