Microsoft Office Wordファイルの検索クローラをPythonで作成する際、表題の通り、*.docからテキストデータに変換する必要がある。本記事ではwin32comライブラリを用いてPythonスクリプトからWordファイルのテキストデータを抽出するスクリプトを紹介する。
(尚、世には多数のOfficeファイルコンバーターが有るので、このソースを使うことが最適とは限らない)
ソースコード
エラーハンドリングは必要最低限である為、扱うファイル特性に応じて追加が必要な場合もある。
# coding: Shift_JIS import win32com.client def word2text(file_path): text = "" doc = win32com.client.gencache.EnsureDispatch("Word.Application") doc.Visible = False # アプリで開かない doc.DisplayAlerts = False # 警告OFF try: doc_file = doc.Documents.Open(file_path, False, True) # 変換ダイアログ非表示、読み取り専用で開く for s in doc_file.Sentences: text += str.rstrip(str(s)) + "\n" doc_file.Close() finally: doc.Quit() return text def main(): print word2text('C:\サンプル\python_win32com.doc') if __name__ == '__main__': main()
テスト対象ファイル
検証用サンプルファイル(doc)
※対象ファイルは当方でウィルスチェックしたものをアップロードしているが、不安な方は自前でサンプルを用意すると良い。(基本Webにある物は疑ってかかるのが良い)
実行環境
Windows7 (32bit), Python2.7.7, pywin32 219, Office 2003
実行結果
Word わーど