首页 > 编程语言 >Python 批量合并图片到word文档

Python 批量合并图片到word文档

时间:2023-10-30 21:56:25浏览次数:23  
标签:word Python image 文档 output Word folder glob

这段代码是一个用Python编写的功能,它将指定文件夹中的所有图片插入到Word文档中并保存。以下是代码的主要步骤和功能:

导入必要的库

Python中的docx库用于操作Word文档,glob库用于匹配文件路径。
from docx import Document
from docx.shared import Inches
import glob

定义函数 insert_images_to_word(image_folder, output_path)

该函数用于将指定文件夹中的所有图片插入到Word文档中,并保存到指定路径。

def insert_images_to_word(image_folder, output_path):
    try:
        # 创建一个空白的Word文档对象
        doc = Document()

        # 添加段落
        doc.add_paragraph('这是一个包含多张图片的Word文档')

        # 获取文件夹中的所有图片文件路径
        image_files = glob.glob(image_folder + '/*.png') + glob.glob(image_folder + '/*.jpg')

        # 遍历图片文件路径列表,逐个添加图片到Word文档中
        for image_file in image_files:
            doc.add_picture(image_file, width=Inches(6), height=Inches(3))

        # 保存Word文档
        doc.save(output_path)
        return True
    except Exception as e:
        print(e)
        return False

 创建一个空白的Word文档对象

doc = Document()

添加一个段落到Word文档中

doc.add_paragraph('这是一个包含多张图片的Word文档')

获取文件夹中的所有图片文件路径

使用glob.glob()函数获取文件夹中所有的.png.jpg图片文件路径。

image_files = glob.glob(image_folder + '/*.png') + glob.glob(image_folder + '/*.jpg')

遍历图片文件路径列表,逐个将图片添加到Word文档中

利用add_picture()方法将图片逐个添加到Word文档中,可以设置图片的宽度和高度。

for image_file in image_files:
    doc.add_picture(image_file, width=Inches(6), height=Inches(3))

保存Word文档到指定路径

使用save()方法保存Word文档到指定的输出路径。

doc.save(output_path)

 返回生成结果状态

如果成功生成Word文档,则返回True,否则返回False

return True

调用函数并输出结果

最后,根据需要指定图片所在文件夹路径和输出文件路径,并调用函数进行操作。根据返回值判断操作是否成功。

# 图片所在文件夹路径
image_folder = r'C:\Users\Admin\Desktop\数据核对'

# Word文档保存路径
output_path = r'C:\Users\Admin\Desktop\output.docx'

# 调用函数
if insert_images_to_word(image_folder, output_path):
    print('Word文档已保存到{}'.format(output_path))
else:
    print('生成Word文档失败。')

这样,代码就完成了将指定文件夹中的所有图片插入到Word文档并保存的功能。

完整代码一:

from docx import Document
from docx.shared import Inches
import glob


def insert_images_to_word(image_folder, output_path):
    """
    将指定文件夹中的所有图片插入到 Word 文档中,并保存到指定路径。

    image_folder:图片所在文件夹的路径。
    output_path:Word 文档保存路径。
    """
    try:
        # 创建一个空白的Word文档对象
        doc = Document()

        # 添加段落
        doc.add_paragraph('这是一个包含多张图片的Word文档')

        # 获取文件夹中的所有图片文件路径
        image_files = glob.glob(image_folder + '/*.png') + glob.glob(image_folder + '/*.jpg')

        # 遍历图片文件路径列表,逐个添加图片到Word文档中
        for image_file in image_files:
            doc.add_picture(image_file, width=Inches(6), height=Inches(3))

        # 保存Word文档
        doc.save(output_path)
        return True
    except Exception as e:
        print(e)
        return False


# 图片所在文件夹路径
image_folder = r'C:\Users\Admin\Desktop\数据核对'

# Word文档保存路径
output_path = r'C:\Users\Admin\Desktop\output.docx'

# 调用函数
if insert_images_to_word(image_folder, output_path):
    print('Word文档已保存到{}'.format(output_path))
else:
    print('生成Word文档失败。')

完整代码二:

from docx import Document
from docx.shared import Inches
import glob

# 创建一个空白的Word文档对象
doc = Document()

# 添加段落
doc.add_paragraph('这是一个包含多张图片的Word文档')

# 图片所在文件夹路径
image_folder = r'C:\Users\liuchunlin2\Desktop\新建文件夹'

# 获取文件夹中的所有图片文件路径
image_files = glob.glob(image_folder + '/*.png')+glob.glob(image_folder + '/*.jpg')  # 根据实际情况修改文件扩展名

print(image_files)

# 遍历图片文件路径列表,逐个添加图片到Word文档中
for image_file in image_files:
    doc.add_picture(image_file, width=Inches(6), height=Inches(3))

# 保存Word文档
doc.save('output.docx')

 

标签:word,Python,image,文档,output,Word,folder,glob
From: https://www.cnblogs.com/lcl-cn/p/17798946.html

相关文章

  • python sqlalchemy批量插入大量数据,性能最佳!
    defcreate_user_items(db:Session,mouse_events,user,events_dict):mouse_events=json.loads(mouse_events)db.execute(models.Sessions.__table__.insert(),[{"user_id":user,"x_coordinate":event["x_cor&q......
  • python sqlalchemy 动态设置表名__tablename__,一个model对应多个table
    fromsqlalchemyimportcreate_engine,Column,BigInteger,Stringfromsqlalchemy.ext.declarativeimportdeclarative_basefromsqlalchemy.ormimportsessionmakerbase=declarative_base()engine=create_engine("postgresql://postgresadmin:[email protected]......
  • Python使用selenium来自动化提交表单
    提问:怎么用selenium来自动化提交表单回答:fromseleniumimportwebdriverfromselenium.webdriver.common.keysimportKeys#创建一个Chrome浏览器实例driver=webdriver.Chrome(executable_path='path/to/chromedriver')#打开目标网页driver.get('https://www.example.c......
  • # yyds干货盘点 #Python自动化办公——3个Excel表格中每个门店物品不同,想要汇总在一起
    大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Python自动化办公处理的问题,一起来看看吧。原始数据如下所示:二、实现过程这里【猫药师Kelly】给了一个代码和思路,如下所示:顺利地解决了粉丝的问题。下一篇文章,我们一起来看看另外一种方法。三、总结大家好,......
  • python最新采集京东app商品详情数据(2023-10-30)
    一、技术要点: 1、cookie可以从手机app端用charles抓包获取; 2、无需安装nodejs,纯python源码; 3、商品详情接口为:functionId="wareBusiness"; 4、clientVersion="10.1.4"同时也支持更高的版本; 5、sign签名算法已转成python源码;#-*-coding:UTF-8-*-importreques......
  • python采集京东app搜索商品数据(2023-10-30)
    摘要:   python采集京东app搜索商品数据(2023-10-30)一、技术要点: 1、cookie可以从手机app端用charles抓包获取; 2、无需安装nodejs,纯python源码; 3、搜索接口为:functionId=search; 4、clientVersion="10.1.4"同时也支持更高的版本; 5、sign签名算法已转成pyth......
  • Python45days
    标签的分类——单标签imgbrhr——双标签a  hp div <a></a>——按照标签属性分类①块儿级标签 :自己独自占一行h1-h6pdiv  ②行内标签 :文本多大占多大......
  • python3_图像
    图像读取的Image.open()和cv2.imread()的区别-CSDN博客报错:ModuleNotFoundError:Nomodulenamed'PIL'解决方法-CSDN博客wordcloud:raiseValueError(“OnlysupportedforTrueTypefonts“)_是傻羊啊的博客-CSDN博客环境配置:#pipinstallpillow fromPILimport......
  • Python中的集合 Set
    set集合,集合的特点是无序的 写法:s={1,2,3}但是如果内容是空的,它不是set集合,而是dict字典s={}print(type(s))#输出结果<class'dict'>{}s={3,2,1}print(type(s))print(s)#输出结果<class'set'>{1,2,3}s={3,2,3}print(type(s))print(s)#输出结果<c......
  • Python monkey patch(猴子补丁)
    猴子补丁(monkeypatch)-简书(jianshu.com)python面试题精讲——monkeypatch(猴子补丁)-知乎(zhihu.com)classA:deffunc(self):print("Hi")defmonkey(self):print("Hi,monkey")a=A()a.func()'''运行结果Hi......