python

しょっちゅう忘れることを書いておく。

33

565 views

pythonをwordで扱うには以下のモジュールをインストールする。

pip install --pre python-docx

間違って以下を実行して、

pip install docx  (間違い)
import docx

if __name__ == '__main__':
    doc = docx.Document(docx_name)

と書いたプログラムを実行すると、以下のエラーが表示されてしまう。

ERROR: Could not find a version that satisfies the requirement exceptions (from versions: none)
ERROR: No matching distribution found for exceptions

こんなコマンドを実行しても無駄。

pip install exceptions

exceptionsはpyceptionという名前に変わっている。
インストールするなら以下。

pip install pyception

ただ、これを実行しても、docxはexceptionsのモジュールを使っているので動かない。
動かすにはdocxのモジュールでexceptionsを使っているところをpyceptionに書き換える必要があるので現実的ではない。

大人しく、python-docxを使うのがよい。

python-docxをインストールして、以下でwordを読み出せていればOK。

# coding:UTF-8
import docx

if __name__ == '__main__':
    docx_name = "test.docx"
    doc = docx.Document(docx_name)
    for para in doc.paragraphs:
        print(para.text)

ちなみに画像ファイル一覧が欲しいときのサンプルは以下。get_images関数を呼び出すと、wordが内部で持っているファイルを取得できる。
なお、wordのdocxファイルの正体はzipファイル。
そのため、lahaplusなどで解凍してもOK。

# coding:UTF-8
import zipfile
import docx

def get_images():
    # docxをZIP形式のファイルとして開く
    docx_zip = zipfile.ZipFile("test.docx")
    # docxの中にあるファイル一覧を取得
    zipped_files = docx_zip.namelist()

    # ファイルを1つずつ表示
    for file in zipped_files:
        print(file)

    docx_zip.close()


if __name__ == '__main__':
    docx_name = "test.docx"
    doc = docx.Document(docx_name)
    for para in doc.paragraphs:
        print(para.text)

Page 24 of 56.

前のページ 次のページ



[添付ファイル]


お問い合わせ

プロフィール

マッスル

自己紹介

本サイトの作成者。
趣味:プログラム/水耕栽培/仮想通貨/激辛好き
プログラムは趣味と勉強を兼ねて、のんびり本サイトを作っています。
フレームワークはdjango。
仮想通貨はNEMが好き。
水耕栽培は激辛好きが高じて、キャロライナ・リーパーの栽培にチャレンジ中。

サイト/ブログ

https://www.osumoi-stdio.com/pyarticle/

ツイッター

@darkimpact0626