背景需求:
Python批量将一寸照导入word,每份生成的word里面的照片都不同。在测试过程中,找到了一个可以Python将大量图片保存在一个word里面的代码
操作过程:
1,图片位置

运行代码
'''
Linear Algebra and Geometry
https://blog.youkuaiyun.com/qq_44354520/article/details/103831685?utm_term=python%20%E5%B0%86%E5%9B%BE%E7%89%87%E5%AD%98%E5%85%A5word&utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~all~sobaiduweb~default-3-103831685-null-null&spm=3001.4430
'''
from docx import Document
from docx.shared import Inches
import os
from PIL import Image
# 要插入的图片所在的文件夹
fold='C:\\Users\\Administrator\\Desktop\\文件名'
# os.walk(fold)没有返回值,所以这么做显然没有结果,是错的
# pics=list(os.walk(fold)[3])
# # pics.pop()
# print(pics)
# pics是图片的名字
# root是string类型, dirs和pics是list类型
for root, dirs, pics in os.walk(fold):
doc=Document() # 新建 docx文件
for i in range(0,len(pics)): # 循环从0-图片数量)
#不需要把文件后缀名去掉,后面的PIL库里的open可以直接识别出文件名后缀
# print(pics[i],'\n')
# pics[i] = os.path.splitext(pics[i])[0]
# print(pics[i], '\n')
#我前半部分的路径直接复制黏贴了,没用root和dirs
filepath = 'C:\\Users\\Administrator\\Desktop\\文件名\\'+pics[i]
# filepath = root + '\\' + str(pics[i])
try:
doc.add_picture(filepath,width=Inches(4),height=Inches(3))
except Exception:
pic_tmp=Image.open(filepath)
# 如果格式有问题,就用save转换成默认的jpg格式
pic_tmp.save(pic_tmp)
# 把处理后的图片放进Document变量doc中
doc.add_picture(filepath, width=Inches(4),height=Inches(3))
# 把Document变量doc保存到指定路径的docx文件中
doc.save('C:\\Users\\Administrator\\Desktop\\文件名\\pic11.docx')
#输出保存成功的标志
print("pic", i+1, "successfully added.")
运行结果

docx所在文件位置:

效果展示:

调整照片大小

这篇博客介绍了如何使用Python的`docx`库将多个图片批量插入到Word文档中。通过`os.walk`遍历图片文件夹,利用`PIL`库处理可能出现的图片格式问题,然后将图片以指定尺寸添加到Word文档中。最后,保存生成的Word文档。适用于自动化办公场景。
2939

被折叠的 条评论
为什么被折叠?



