当前位置: 首页 > news >正文

Python使用总结之py-docx将word文件中的图片保存,并将内容返回

Python使用总结之py-docx将word文件中的图片保存,并将内容返回

使用py-docx读取word文档的内容,其中包含标题、文本和图片等信息。该方法将标题和内容返回,并将文件中的图片保存到指定的文件夹中。

实现步骤

  1. 加载文件内容
  2. 读取文件的段落
  3. 对文件段落做判断
  4. 根据判断结果进行数据保存或者文件保存

代码部分

from docx import Document
import os
import redef extract_images_and_text(doc_path, output_folder):# 判断文件是否存在os.makedirs(output_folder, exist_ok=True)# 获取文件内容doc = Document(doc_path)# 创建数据保存字典content_dict = {}# 保存文件标题title = doc.paragraphs[0].text.strip() if doc.paragraphs else "Untitled"# 导出文件内容和图片full_text = ""img_count = 0for para in doc.paragraphs:full_text += para.text + "\n"for rel in doc.part.rels:rel = doc.part.rels[rel]if "image" in rel.target_ref:img_count += 1img_data = rel.target_part.blobimg_filename = f"image_{img_count}.png"img_path = os.path.join(output_folder, img_filename)with open(img_path, "wb") as img_file:img_file.write(img_data)# 清楚特殊符号content_dict[title] = re.sub(r'\n\s*\n', '\n', full_text.strip())return content_dict# Example usage:
doc_path = "path/to/your/document.docx"
output_folder = "path/to/output/folder"
result = extract_images_and_text(doc_path, output_folder)
print(result)

相关文章:

  • 前端项目依赖包中的依赖包漏洞解决方案
  • Python的包管理工具pip安装
  • 不可思议的转折,这部韩剧在口碑上实现逆袭
  • 15.面试算法-树基础
  • 统信服务器操作系统进入【单用户模式】
  • TM-align结果的PDB ID和链ID
  • LeetCode - 850 矩形面积 II
  • 【Linux】Linux基本命令
  • 征程6 上基于 DEB 工具实现包管理
  • c# 三元表达式
  • 基于python深度学习遥感影像地物分类与目标识别、分割实践技术
  • 数据采集使用动态代理被拦截的原因是什么?
  • 声波定位技术在地下管道中如何应用
  • 开箱即用的大模型应用跟踪与批量测试方案
  • 搜索插入位置
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • docker-consul
  • ES6系列(二)变量的解构赋值
  • go语言学习初探(一)
  • JavaScript 事件——“事件类型”中“HTML5事件”的注意要点
  • JavaScript 一些 DOM 的知识点
  • leetcode46 Permutation 排列组合
  • leetcode98. Validate Binary Search Tree
  • Linux链接文件
  • mongodb--安装和初步使用教程
  • Python学习笔记 字符串拼接
  • vue总结
  • 对象管理器(defineProperty)学习笔记
  • 力扣(LeetCode)56
  • 聊聊sentinel的DegradeSlot
  • 前端相关框架总和
  • 使用Envoy 作Sidecar Proxy的微服务模式-4.Prometheus的指标收集
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • ​configparser --- 配置文件解析器​
  • ​LeetCode解法汇总2304. 网格中的最小路径代价
  • ‌内网穿透技术‌总结
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • (CVPRW,2024)可学习的提示:遥感领域小样本语义分割
  • (ZT)薛涌:谈贫说富
  • (八)c52学习之旅-中断实验
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (附源码)springboot高校宿舍交电费系统 毕业设计031552
  • (附源码)SSM环卫人员管理平台 计算机毕设36412
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (附源码)计算机毕业设计高校学生选课系统
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (六)软件测试分工
  • (三)Pytorch快速搭建卷积神经网络模型实现手写数字识别(代码+详细注解)
  • (十六)Flask之蓝图
  • (转)真正的中国天气api接口xml,json(求加精) ...
  • .net core使用EPPlus设置Excel的页眉和页脚
  • .NET Framework 服务实现监控可观测性最佳实践
  • .NET 应用架构指导 V2 学习笔记(一) 软件架构的关键原则
  • .net6+aspose.words导出word并转pdf
  • .net利用SQLBulkCopy进行数据库之间的大批量数据传递