1.环境准备,python环境,安装python-docx依赖包

命令:pip install python-docx

其他镜像地址:https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/python-docx/

2.测试文档如下:

3.提取文字

import docxif __name__ == '__main__':# 获取文档对象doc_path = 'E:/resource/video/test.docx'doc = docx.Document(doc_path)print("段落数:" + str(len(doc.paragraphs)))  # 段落数# 输出每一段的内容for para in doc.paragraphs:print(para.text)tab = doc.tablesprint("表格数:" + str(len(tab)))  # 段落数# 读取第1个表格tb1 = doc.tables[0]# 读取第一行所有单元格的内容for row in tb1.rows:for cell in row.cells:print(cell.text)

测试结果:

4.提取图片

import os
import zipfile
import shutildef word2pic(path, zip_path, tmp_path, store_path):# 将docx文件重命名为zip文件os.rename(path, zip_path)# 进行解压f = zipfile.ZipFile(zip_path, 'r')# 将图片提取并保存for file in f.namelist():f.extract(file, tmp_path)# 释放该zip文件f.close()# 将docx文件从zip还原为docxos.rename(zip_path, path)# 得到缓存文件夹中图片列表pic = os.listdir(os.path.join(tmp_path, 'word/media'))# 将图片复制到最终的文件夹中for i in pic:# 根据word的路径生成图片的名称new_name = path.replace('\\', '_')new_name = new_name.replace(':', '') + '_' + ishutil.copy(os.path.join(tmp_path + '/word/media', i), os.path.join(store_path, new_name))# 删除缓冲文件夹中的文件,用以存储下一次的文件for i in os.listdir(tmp_path):# 如果是文件夹则删除if os.path.isdir(os.path.join(tmp_path, i)):shutil.rmtree(os.path.join(tmp_path, i))if __name__ == '__main__':# 源文件path = r'E:\resource\video\test\test.docx'# docx重命名为zipzip_path = r'E:\resource\video\test\test.zip'# 中转图片文件夹tmp_path = r'E:\resource\video\test\tmp'# 最后保存结果的文件夹store_path = r'E:\resource\video\test\pic'm = word2pic(path, zip_path, tmp_path, store_path)

运行结果:

5,提取文字和图片,放入不同文件夹

代码:

# encoding=utf-8
import os
import zipfile
import shutil  # 引入os(文件及目录操作)、zipfile(zip文件操作)、shutil(拷贝文件)库import docx
from win32com import client
count = 1000def get_text(file):labels = []# 获取文档对象doc = docx.Document(file)tab = doc.tablestab_num = len(tab)print("表格数:", str(tab_num))for i in range(0, tab_num):for j in range(1, len(tab[i].rows)):labels.append(tab[i].rows[j].cells[0].text)print(labels)return labelsdef pic2dir(doc_dir, file, labels):file_zip = file[:-5] + '.ZIP'os.rename(file, file_zip)  # 重命名为zip文件tmp_path = doc_dir + 'tmp'f = zipfile.ZipFile(file_zip, 'r')for img_file in f.namelist():if "word" in img_file:# 将压缩包里的word文件夹解压出来f.extract(img_file, tmp_path)f.close()os.rename(file_zip, file)pic = os.listdir(os.path.join(tmp_path, 'word/media'))print(len(pic))global countnn = 0pic.sort(key=lambda x: int(x[5:-5])) #image1.jpegfor i in pic:if i.endswith('.jpeg'):pic_path = doc_dir + labels[nn]if not os.path.exists(pic_path):os.mkdir(pic_path)shutil.copy(os.path.join(tmp_path + '/word/media', i), os.path.join(pic_path, str(count)+'.png'))count += 1nn += 1# 删除缓冲文件夹中的文件,用以存储下一次的文件for i in os.listdir(tmp_path):# 如果是文件夹则删除if os.path.isdir(os.path.join(tmp_path, i)):shutil.rmtree(os.path.join(tmp_path, i))return countdef doc2docx(doc_name):try:# 首先将doc转换成docxword = client.Dispatch("Word.Application")doc = word.Documents.Open(doc_name)docx_name = doc_name[:-4] + '.docx'# 使用参数16表示将doc转换成docxdoc.SaveAs(docx_name, 16)doc.Close()word.Quit()except:passreturn docx_nameif __name__ == '__main__':doc_dir = 'E:/resource/video/test/11/'os.chdir(doc_dir)for file_name in os.listdir(doc_dir):print(file_name)if 'doc' in file_name:file = doc_dir + file_nameif file_name.endswith('.docx'):passelse:file = doc2docx(file)labels = get_text(file)if len(labels) > 0:count = pic2dir(doc_dir, file, labels)print(count)

运行结果:

分类效果如下:

此类处理主要是机器学习收集训练数据时可以批量提取文字或图片。

Python提取word指定内容和图片,分类图片相关推荐

  1. python批量提取word指定内容_python word 段落提取

    如何用python读取word 使用Python的内部方法open()读取文本文件try:f=open('/file','r')print(f.read())finally:if f:f.close( ...

  2. 实用脚本!Python 提取 PDF 指定内容生成新文件!

    很多时候,我们并不会预知希望提取的页号,而是希望将包含指定内容的页面提取合并为新PDF,本文就以两个真实需求为例进行讲解. 01 需求描述 数据是一份有286页的上市公司公开年报PDF,大致如下 现在 ...

  3. 超级实用案例,Python 提取 PDF 指定内容生成新PDF

    很多时候,我们并不会预知希望提取的页号,而是希望将包含指定内容的页面提取合并为新PDF,本文就以两个真实需求为例进行讲解. [注]资料.代码.技术交流,文末获取 01 需求描述 数据是一份有286页的 ...

  4. python提取网页指定内容

    最近在参考w3school的文档学习python,就根据文档的请求模块进行扩展一下. 1.访问提供的网站,并提取script中的url地址. 这是w3school的请求模块案例:https://www ...

  5. python读取word指定内容_python读取word 中指定位置的表格及表格数据

    1.Word文档如下: 2.代码 # -*- coding: UTF-8 -*- from docx import Document def readSpecTable(filename, specT ...

  6. python批量提取word指定内容_使用python批量读取word文档并整理关键信息到excel表格的实例...

    目标 最近实验室里成立了一个计算机兴趣小组 倡议大家多把自己解决问题的经验记录并分享 就像在CSDN写博客一样 虽然刚刚起步 但考虑到后面此类经验记录的资料会越来越多 所以一开始就要做好模板设计(如下 ...

  7. python读取word指定内容_python解析html提取数据,并生成word文档实例解析

    简介 今天试着用ptyhon做了一个抓取网页内容,并生成word文档的功能,功能很简单,做一下记录以备以后用到. 生成word用到了第三方组件python-docx,所以先进行第三方组件的安装.由于w ...

  8. python批量提取word指定内容_python批量提取word内信息

    单位收集了很多word格式的调查表,领导需要收集表单里的信息,我就把所有调查表放一个文件里,写了个python小程序把所需的信息打印出来 #coding:utf-8 import os import ...

  9. python批量提取word指定内容到excel_(转)用python批量读取word文档并整理关键信息到excel表格...

    目标 最近实验室里成立了一个计算机兴趣小组 倡议大家多把自己解决问题的经验记录并分享 就像在CSDN写博客一样 虽然刚刚起步 但考虑到后面此类经验记录的资料会越来越多 所以一开始就要做好模板设计(如下 ...

最新文章

  1. 路由器上不了网?PPPoE协议了解一下
  2. css 图片换行_这个开源库教你写高级的CSS
  3. 演练 创建数据库MySchool 1007 sqlserver
  4. c52单片机控制l298n步进电机角度_【设计图文】单片机实现的步进电机控制系统(开题报告+论文+文献综述+外文翻译+DWG图纸)...
  5. 注册测绘师学习笔记(二)
  6. 推荐好用的ssh远程连接 linux的工具
  7. 运筹系列31:内点法python代码
  8. python自动登录百度_python模拟百度登陆
  9. Word或者WPS里证件照的背景底色和像素调整
  10. 银行业务系统数据库设计与实现
  11. JS--页面加载完毕后执行
  12. 阿里巴巴400集python教程_摆摊吧,程序员!阿里巴巴力荐Python400集视频
  13. 全球医药研发支出及处方药市场发展前景分析:预计到2026年全球处方药销售额超过1.4万亿美元[图]
  14. VMware安装tools
  15. 自动驾驶车辆控制(坐标转换与横向积分误差)
  16. 伪存储专家装X指南进阶版
  17. fastjson 序列化 不包括转义字符_fastjson黑盒测试与白盒审计
  18. DEMOS和LDMOS的区别
  19. 【ThreeJS基础教程-初识Threejs】1.3 右手坐标系
  20. 计算机教案三维目标,教案三维目标

热门文章

  1. 【JSP02】开发JSP动态网站的步骤
  2. 电梯物联网让老旧小区电梯改造不再是难题
  3. MySQL之GTID主从复制
  4. 前端基础-CSS的属性相关设置
  5. CGCA2021 中国消费品行业 CIO 年会落幕|有信云荣膺“年度卓越低代码 PaaS 中台奖”
  6. psd 免费素材网站
  7. 论文笔记(微表情识别):Micro-Attention for Micro-Expression Recognition
  8. GBASE风采|南大通用与天津农商行羽毛球联谊赛圆满举行
  9. 确定性随机数发生器测试向量——DRBG-CTR-AES192
  10. SpringBoot连接超时导致的502错误案例