由于最近需要收集同伴们的核酸检测报告,做成word文档提交,就写了一个程序。本代码推荐使用jupyter notebook打开。

输入数据:图片文件,图片文件命名需为“姓名+其他字段”。

输出要求格式:姓名+固定词(例如:李华核酸检测报告),后填对应图片。

结果示例如下:

图片数据

需要用到的工具包

pip install os               #使用 os 工具包读取文件名称
pip install python-docx      # 使用python-docx制作word文档
pip install torch            #自然语言处理依托环境
pip install fastnlp          #自然语言处理依托环境
pip install fastHan           #命名实体识别工具包  提取文件名称中的姓名

第一个cell:获取文件名称,以提取文件名中的姓名

图片数据存储在文件夹中,文件夹命名为“测试数据”

将该代码文件,与“测试数据”文件夹放置在同一目录下。

import os
def getfiles(file):filenames=os.listdir(file)print("file_list:")print(filenames,'\n')return filenames

运行cell 

在运行结果栏的输入处,输入图片文件夹名称“测试数据”。

运行结果如下:

第二个cell:输入图片文件夹名称,删除不必要元素

print("请输入图片文件夹名称:")
#   当本程序文件与图片文件放置在同一根目录下时,输入文件名即可,无需加入引号。
file_path = input()filenames = getfiles(file_path)
for i in range(len(filenames)-1):if filenames[i] == '.ipynb_checkpoints':del filenames[i]

 运行cell

第三个cell:得出结果

首先,封装单人报告函数

其次,输入图片标题固定字段,如“李华核酸检测报告单”中“核酸检测报告单”即为固定字段。title变量。

最后,输入存储文件的名字,例如“今日全员核酸检测报告汇总”

运行cell

from docx import Document
from docx.shared import Cm
from fastHan import FastHandef single_hs(document,heading,pic_path):paragraph = document.add_paragraph(heading)document.add_picture(pic_path,width = Cm(14.5),height = Cm(21))document.add_page_break()return documentresult = Document()
title = input('please input title which connect to stu_name:\n')model=FastHan()
for file in filenames:pic = './'+file_path+'/'+file
#     print(pic)stu = model(file,target = "NER")stu = stu[0][0][0]heading = stu + titlesingle_hs(result,heading,pic)print("please input save file name:")
save = input()
result.save(save+'.docx')

完整代码如下

import os
import re
from docx import Document
from docx.shared import Cm
from fastHan import FastHandef getfiles(file):filenames=os.listdir(file)print("file_list:")print(filenames)print()return filenamesdef single_hs(document,heading,pic_path):paragraph = document.add_paragraph(heading)#通过调整width 与 height参数以调整图片大小(以厘米为单位)document.add_picture(pic_path,width = Cm(14.5),height = Cm(18))document.add_page_break()return documentif __name__ == '__main__':#   本程序文件与图片文件需放置在同一根目录下,输入文件名即可,无需加入引号。print("请输入图片文件夹名称:")file_path = input()print('请输入图片类型(如:.jpg):')pic_type = input()#获取文件名称列表filenames = getfiles(file_path)#去除文件名称列表中可能存在的扩展文件file_list = []# 获取图片文件个数file_len = len(filenames)# print(file_len)for i in range(file_len-1):if re.search(pic_type,filenames[i]) is not None:file_list.append(filenames[i])# print(file_list)result = Document()print('请输入图片标题固定字段:')# 将输入的标题固定字段赋予变量titletitle = input()#加载命名实体识别模型model=FastHan()for file in file_list:pic = './'+file_path+'/'+file# print(pic)# 使用命名实体识别模型抽取图片文件命名中的姓名信息stu = model(file,target = "NER")stu = stu[0][0][0]#添加图片标题heading = stu + titlesingle_hs(result,heading,pic)print("请输入文件保存名称:")save = input()result.save(save+'.docx')

到此就结束了~

本程序的不完美之处在于需要手动复制文件列表,待找到方法后更新。

图片类word报告生成器相关推荐

  1. 使用python在实现图片(包括扫描件的图片类pdf)转换成word文档过程中的常见问题

    pdf有两类,一类是别人用word转pdf,你想转过来那种,带有光标那种,计算机能轻松识别,转换相对简单很多.第二类,即图片类pdf,也就是平常工作中看到的各种扫描件,它的识别相对要复杂一些,但又常常 ...

  2. 【葡萄城报表】还在为画“类Word文档报表”而发愁吗?

    [葡萄城报表]还在为画"类Word文档报表"而发愁吗? ​Word 是非常强大的文档编辑工具,一些行业制式文档都是使用Word来创建的,像教育行业的申请表,履历表,审批表等,像石油 ...

  3. 小程序推荐——那些好用实用的小程序(图片类、资讯类、工具类)

    对于自己来说,我既是小程序的使用者.也是小程序开发者. 因此,会经常关注小程序的一些发展动向,同时遇到好的小程序也会收藏起来. 下面我整理了我收藏的小程序并分享给各位,主要有图片制作.效率工具.资讯这 ...

  4. C#自动生成word报告

    C#生成word报告 参考:http://blog.csdn.net/malei0311/article/details/6961082 http://blog.sina.com.cn/s/blog_ ...

  5. 还在为画“类Word文档报表”而发愁吗?

    ​Word 是非常强大的文档编辑工具,一些行业制式文档都是使用Word来创建的,像教育行业的申请表,履历表,审批表等,像石油业的勘探记录表,记录报告,检测报告等,如房地产业的制式合同,不仅包含大量的文 ...

  6. python生成器 图片分类_python批量处理图片图片Python迭代器和生成器介绍

    Python迭代器和生成器介绍迭代器 迭代器是一个实现了迭代器协议的对象,Python中的迭代器协议就是有next方法的对象会前进到下一结果,而在一系列结果的末尾是,则会引发StopIteration ...

  7. python自动生成word报告_python自动化生成分析报告,让你的工作效率提升10倍+

    打开搜狗搜索APP,查看更多精彩资讯 如果你每天都需要输出分析报告,报告模式基本一致,只是更换里面的分析数据,每天重复着同样的工作,费时费力,工作能力没有丝毫的提升,但是如果你学过python,你就可 ...

  8. java freemarker 图片_java通过freemarker导出包含富文本图片的word文档

    废话不多说,进入正题! 本文重点在于:对富文本图片的导出(基础的freemarker+word模板导出这里不做详细解说哈) (ps:大神的东西太深奥~~懵逼了 一周才搞定,为了方便后来在更加简单,清晰 ...

  9. java给图片、word、ppt、excel、pdf添加水印

    java给图片.word.ppt.excel.pdf添加水印 使用poi.itextpdf.imageio等技术 只支持高版本的office,即支持docx.pptx.xlsx 给word添加水印遇到 ...

  10. ArcMap AddIN之 word报告插件

    说明:该插件为新设计,可能存在未考虑到的漏洞,请验证后使用并自行负责结果 按钮: 功能:通过word标签的形式,配置要素属性与模板word之间的映射关系,实现根据要素属性,生成word报告.word报 ...

最新文章

  1. 特征工程:特征生成,特征选择(三)
  2. jeecg3.5.2中上传下载文件的示例中的的一个bug
  3. 字节字符区别Java_【JAVA基础】字符数组与字节数组的区别
  4. iPad开发--QQ空间,处理横竖屏布局,实现子控件中的代理
  5. DHCP服务器--红色箭头
  6. 小米MIX 4真机亮屏照曝光?真全面屏 边框窄到窒息
  7. Vue学习笔记(四)—— 前端路由
  8. mysql8无法修改端口_mysql8.0.18 修改端口报错 Can't start server: Bind on TCP/IP port: Permission denied...
  9. 流程DEMO-费用报销
  10. 迷宫问题python实现
  11. spring mvc 解决后台传递值乱码问题
  12. 【转】fatal error C1010: unexpected end of file解决方案
  13. yousa_team团队项目——兼职平台网站 工作进度
  14. 121道分布式面试题和答案
  15. 拟合函数,偏差和方差
  16. oracle 12c pdb数据库全库备份
  17. 磁盘清理软件:BlueHarvest for Mac
  18. Windows 10无线网连不上怎么办-旧时光 oldtimeblog
  19. 纯web端实现条形码识别
  20. R语言plotly可视化:plotly可视化回归面(plane)、使用mesh3d和add_surface实现三维回归曲面

热门文章

  1. HTML案例之注册页面
  2. 单片机编程用什么软件?单片机开发软件有哪些?华维告诉你.
  3. 射频微波芯片设计1:岗位以及开发工具详解
  4. Bootstrap从入门到精通(全)
  5. 联想笔记本键盘亮屏幕不亮_联想笔记本电脑开机键亮但是黑屏?键盘没反应?
  6. Gambit 4.运行时选项
  7. 【Windows10】C盘快速扩容小妙招
  8. 表达式计算引擎-JEP
  9. 二叉树遍历算法的应用
  10. 【目瞪口呆】通信机房内部长这样