Python将本地图片存储到Word文档

想要利用Python来操作word文档可以使用docx模块.

安装: pip install python-docx

from docx import Document
from docx.shared import Inches

string = '文字内容'
images = '1.jpg'    # 保存在本地的图片
doc = Document()    # doc对象
doc.add_paragraph(string)   # 添加文字
doc.add_picture(images, width=Inches(2))     # 添加图, 设置宽度
doc.save('word文档.docx')     # 保存路径

执行结果: 本地生成了一个Word文档, 打开之后.

Python将本地图片存储到Word文档_第1张图片

但是有时添加图片会产生识别异常:

Python将本地图片存储到Word文档_第2张图片

这是因为图片的格式问题, 对比一下 0.jpg 和 1.jpg的二进制数据, 添加0.jpg会异常, 1.jpg则不会.

解决的方法:

图片格式转换

from docx import Document
from docx.shared import Inches
from PIL import Image

string = '文字内容'
images = '0.jpg'    # 保存在本地的图片
doc = Document()
doc.add_paragraph(string)   # 添加文字

try:
    doc.add_picture(images, width=Inches(2))     # 添加图, 设置宽度
except Exception:
    jpg_ima = Image.open(images)    # 打开图片
    jpg_ima.save('0.jpg')           # 保存新的图片
    doc.add_picture(images, width=Inches(2))     # 添加图, 设置宽度

doc.save('word文档.docx')     # 保存路径

结果就和前面一样了:

Python将本地图片存储到Word文档_第3张图片

总结:

  docx库还有很多的方法, 大家可以查看文档.

https://python-docx.readthedocs.io/en/latest/

你可能感兴趣的:(python)