文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python如何将图片批量保存至word文档中

2023-02-01 12:03

关注

将图片批量保存至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库还有很多的方法,大家可以查看文档。

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

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯