Python:把多张图片放在同一个word中

前言:在原部门的最后一天,有个需求,需要分两步完成。

第一步:

有一堆照片在同一个文件夹下,根据excel读取规则,如下图
在这里插入图片描述
因为比较乱,所以需要把图片放在一个个按“门店名称”创建的文件夹下,以供部门同事后续核对

from PIL import Image
from docx import Document
from docx.shared import Inches
from docx import enum
import openpyxl
import shutil
import os
import traceback

file_path = os.path.abspath('.')

#第一部分:把图片根据规则整理到不同的文件夹内
print(os.listdir(file_path))
pic_path = file_path + '\\' + '5G门头点检' + '\\'
# print(pic_path)
data = openpyxl.load_workbook('图片清单.xlsx')
data_sheet = data['Sheet1']
maxrow = data_sheet.max_row + 1
for i in range(2, maxrow):
    store_name = data_sheet["L" + str(i)].value #门店名称
    pic_name = data_sheet["Q" + str(i)].value #图片名称
    old_pic_path = pic_path + pic_name
    new_file_path = file_path + '\\' + store_name
    try:
        os.makedirs(new_file_path) #创建文件夹
    except:
        continue
    finally:
        shutil.copy(old_pic_path, new_file_path)
for pic_file in os.listdir(file_path):
    if os.path.isdir(pic_file):
        print('{}是文件夹'.format(pic_file))
    else:
        print('{}不是文件夹'.format(pic_file))

成果:
在这里插入图片描述

第二步:

等同事核对完后,需要将图片放在一个word内,一页一个门店,顺序为:门店名称——>照片1——>照片2——>照片3——>照片4

#第二部分:把图片根据顺序放在同一个word中
pic_file_list = os.listdir(file_path)
doc = Document()
try:
    for pic_file in pic_file_list:
        if os.path.isdir(pic_file) and pic_file != '5G门头点检':
            store_pic_path = file_path + '\\' + pic_file
            # print(store_pic_path)
            for root, dirs, files in os.walk(store_pic_path):
                doc.add_paragraph(pic_file)
                for file in files:
                    if file.endswith('.jpg') or file.endswith('.png'):
                        try:
                            doc.add_picture(os.path.join(root, file), width=Inches(1.5))  # 添加图, 设置宽度
                        except:
                            jpg_ima = Image.open(os.path.join(root, file))  # 打开图片
                            jpg_ima.save(os.path.join(root, file))  # 保存新的图片
                            doc.add_picture(os.path.join(root, file), width=Inches(1.5))  # 添加图, 设置宽度
                doc.add_page_break() #换页
    doc.save(file_path + '\\' + 'all_pic.docx')
    print('已经全部完成!')
except:
    traceback.print_exc()
finally:
    a = input('输入任意键退出!')

成果:
在这里插入图片描述

  • 4
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值