しょっちゅう忘れることを書いておく。
![]() |
66 |
975 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 69.
すぺぺぺ
本サイトの作成者。
プログラムは趣味と勉強を兼ねて、のんびり本サイトを作っています。
フレームワークはdjango。
ChatGPTで自動プログラム作成に取り組み中。
https://www.osumoi-stdio.com/novel/