GNU/Linux >> Linux の 問題 >  >> Linux

PythonでMSワードファイルからテキストを抽出する

ネイティブの Python docx モジュールを使用する .ドキュメントからすべてのテキストを抽出する方法は次のとおりです:

document = docx.Document(filename)
docText = '\n\n'.join(
    paragraph.text for paragraph in document.paragraphs
)
print(docText)

Python DocX サイトを参照

また、テーブルなどを引き出す Textract もチェックしてください。

正規表現を使用して XML を解析すると、cthulu が呼び出されます。やるな!


ベンジャミンの答えはかなり良いものです。統合しました...

import zipfile, re

docx = zipfile.ZipFile('/path/to/file/mydocument.docx')
content = docx.read('word/document.xml').decode('utf-8')
cleaned = re.sub('<(.|\n)*?>','',content)
print(cleaned)

アンチワードへのサブプロセス呼び出しを行うことができます。 Antiword は、word doc からテキストをダンプするための Linux コマンドライン ユーティリティです。単純なドキュメントではうまく機能します (明らかに書式設定が失われます)。これは apt を介して入手でき、おそらく RPM として入手できます。または、自分でコンパイルすることもできます。


Linux
  1. 着信メールをText/plainからText/htmlに変更しますか?

  2. Pythonを3.4.3から3.5に更新する方法は??

  3. Linuxでテキストファイルからバイナリを見分ける方法

  1. HTML テーブルからのデータの抽出

  2. PHP から Python スクリプトを実行する

  3. Linuxで区切り文字が異なるテキストファイルから列を抽出する

  1. Linux を使用した msi ファイルの抽出

  2. Centos 6.5 で Python を 2.6 から 2.7 にアップグレードする

  3. プロセスがファイルを書き込めないようにする方法