python如何将图片批量保存至word文档中
qq_24591139 人气:0将图片批量保存至word文档中
def picture_docx(path_picture,path_docx): # 要插入的图片所在的文件夹 #fold = 'C:\\Users\\Administrator\\Desktop\\tu' fold = path_picture # 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() for i in range(0, len(pics)): # 不需要把文件后缀名去掉,后面的PIL库里的open可以直接识别出文件名后缀 # print(pics[i],'\n') # pics[i] = os.path.splitext(pics[i])[0] # print(pics[i], '\n') # 我前半部分的路径直接复制黏贴了,没用root和dirs filepath = path_picture + pics[i] # filepath = root + '\\' + str(pics[i]) try: doc.add_picture(filepath, width=Inches(6), 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(6), height=Inches(3)) # 把Document变量doc保存到指定路径的docx文件中 doc.save(path_docx + "PLS.docx") # 输出保存成功的标志 print("pic", i + 1, "successfully added.")
将本地图片存储到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文档, 打开之后.
但是有时添加图片会产生识别异常:
这是因为图片的格式问题, 对比一下 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') # 保存路径
结果就和前面一样了:
docx库还有很多的方法,大家可以查看文档。
http://python-docx.readthedocs.io/en/latest/
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。
加载全部内容