pythonで Microsoft Word 書類を grep する

docx2txtはwordファイルからテキストを抽出するライブラリです。

以下はwordファイルから特定の文字を抽出するサンプルです。

import docx2txt

strings = docx2txt.process("000497699.docx")
lines = strings.split("\n")

moji = "厚生"

for line in lines:
    if line.find(moji) >= 0:
        print(line)

対象のwordファイルは厚生労働省のサイトにある、総合研究報告書というファイルを使っています。

以下、出力結果です。

厚生労働科学研究費
 厚生労働行政推進調査事業費
 厚生労働科学研究費
 厚生労働行政推進調査事業費様式A(10)
    厚生労働大臣
 厚生労働科学研究費
 厚生労働行政推進調査事業費
 厚生労働科学研究費
 厚生労働行政推進調査事業費
   上記補助事業について、厚生労働科学研究費補助金等取扱規程(平成10年4月9日厚生省告示第130号)第16条第3項の規定に基づき下記のとおり研究成果を報告します。
  ※規程19条第2項及び第3項に従い、事業完了後5年以内に、その結果又は経過の全部若しくは一部を刊行し、又は書籍、雑誌、新聞等に掲載した場合には、その刊行物又はその別刷一部を添えて厚生労働大臣等に届け出ること。
 研究代表者 厚生 太郎
       厚生太郎
        研究代表者 厚生 太郎 ○○○○○病院長
     厚生労働行政の課題との関連性を含めて記入すること。                                   
           なお、ヒトゲノム・遺伝子解析研究に関する倫理指針(平成25年文部科学省・厚生労働省・経済産業省告示第1号)、人を対象とする医学系研究に関する倫理指針(平成26年文部科学省・厚生労働省告示第3号)、遺伝子治療等臨床研究に関する指針(平成31年厚生労働省告示第48号)、厚生労働省の所管する実施機関における動物実験等の実施に関する基本指針(平成18年6月1日付厚生労働省大臣官房厚生科学課長通知)及び申請者が所属する研究機関で定めた倫理規定等を遵守するとともに、あらかじめ当該研究機関の長等の承認、届出、確認等が必要な研究については、研究開始前に所定の手続を行うこと。