65

python-docxモジュール ( )を使用しようとしていますが、 github リポジトリテスト サンプルでは関数を使用していますが、readthedocsではクラスを使用してpip install python-docxいるため、非常に混乱しているようです。docx ファイルにテキストを追加する方法を示しているだけですが、既存のファイルを読み取っていませんか?opendocxDocument

最初のもの ( opendocx) は機能していません。廃止される可能性があります。2番目のケースでは、使用しようとしていました:

from docx import Document

document = Document('test_doc.docx')
print(document.paragraphs)

のリストを返しました<docx.text.Paragraph object at 0x... >

それから私はしました:

for p in document.paragraphs:
    print(p.text)

すべてのテキストが返されましたが、欠けているものはほとんどありませんでした。すべての URL (URL に移動するには、CTRL + クリック) がコンソールのテキストに表示されませんでした。

どうした?URL が見つからないのはなぜですか?

ループを反復せずに完全なテキストを取得するにはどうすればよいですか (のようなものopen().read())

4

8 に答える 8

67

あなたはこれを試すことができます

import docx

def getText(filename):
    doc = docx.Document(filename)
    fullText = []
    for para in doc.paragraphs:
        fullText.append(para.text)
    return '\n'.join(fullText)
于 2016-03-08T15:28:19.077 に答える
19

python-docx を改造したpython-docx2txtを使用できますが、リンク、ヘッダー、フッターからテキストを抽出することもできます。また、画像を抽出することもできます。

于 2015-10-29T02:59:23.980 に答える
0

同様の問題があったため、回避策を見つけました(正規表現のおかげでハイパーリンクタグを削除して、段落タグのみが残るようにします)。このソリューションをhttps://github.com/python-openxml/python-docx/issues/85 BPに投稿しました

于 2014-11-18T07:09:08.573 に答える