"""
# !/usr/bin/env python
# -*- coding:utf-8 -*-
# @Author  : 史沐凡
# @file    :  pdf____张坤_文档转换工具.py
# @Time    : 2022/7/24 22:21
# @Function:
"""
# 读取docx中的文本代码示例
import glob
import os
import re
from openpyxl import Workbook  # 写入的时候用
import pdfplumberdef getfields(filepath):'''直接读取pdf,获取所需要的字段患者姓名 标识号 出生日期    性别  保险集团    胶囊标识号   操作日期    转诊医生    登记者 预约者转诊原因 体重  身高  腰围  体型  通过胃部的时间 通过小肠的时间 操作信息与发现 摘要与建议:return:list'''print(filepath)患者姓名 = ""标识号 = ""出生日期 = ""性别 = ""保险集团 = ""胶囊标识号 = ""操作日期 = ""转诊医生 = ""登记者 = ""预约者 = ""转诊原因 = ""体重 = ""身高 = ""腰围 = ""体型 = ""通过胃部的时间 = ""通过小肠的时间 = ""操作信息与发现 = ""摘要 = ""建议 = ""fields = ['患者姓名','标识号','出生日期','性别','保险集团','胶囊标识号','操作日期','转诊医生','登记者','预约者','转诊原因','体重','身高','腰围','体型','通过胃部的时间','通过小肠的时间','操作信息与发现','摘要','建议']nr = ""with pdfplumber.open(filepath) as pdf:for page in pdf.pages:  # 遍历所有页码text = page.extract_text()  # 提取文本nr=nr+textnr = nr.strip()print(nr)res = re.search(r"患者姓名 (.*)", nr, 0)if res: 患者姓名 = res.group(1).strip()res = re.search(r"标识号 (.*)", nr, 0)if res: 标识号 = res.group(1).strip()res = re.search(r"出生日期 (.*)", nr, 0)if res: 出生日期 = res.group(1).strip()res = re.search(r"性别 (.*)性", nr, 0)if res: 性别 = res.group(1).strip()res = re.search(r"保险集团 (.*)", nr, 0)if res: 保险集团 = res.group(1).strip()res = re.search(r"胶囊标识号 (.*)", nr, 0)if res: 胶囊标识号 = res.group(1).strip()res = re.search(r"操作日期 (.*)", nr, 0)if res: 操作日期 = res.group(1).strip()res = re.search(r"转诊医生 (.*)", nr, 0)if res: 转诊医生 = res.group(1).strip()res = re.search(r"登记者 (.*)", nr, 0)if res: 登记者 = res.group(1).strip()res = re.search(r"预约者 (.*)", nr, 0)if res: 预约者 = res.group(1).strip()res = re.search(r"转诊原因(.*)患者数据", nr, re.DOTALL)if res:转诊原因 = res.group(1).strip()res = re.search(r"体重 ?:(\d*) ?kg", nr, 0)if res: 体重 = res.group(1).strip()res = re.search(r"身高 ?:(\d*) ?cm", nr, 0)if res: 身高 = res.group(1).strip()res = re.search(r"腰围 ?:(\d*) ?cm", nr, 0)if res: 腰围 = res.group(1).strip()res = re.search(r"体型 ?:(.{1,3}),", nr, 0)if res: 体型 = res.group(1).strip().strip()res = re.search(r"通过胃部的时间 ?:(.*),", nr, 0)if res: 通过胃部的时间 = res.group(1).strip()res = re.search(r"通过小肠的时间 ?:(.*)", nr, 0)if res: 通过小肠的时间 = res.group(1).strip()res = re.search(r"操作信息与发现(.*)摘要与建议", nr, re.DOTALL)if res:操作信息与发现 = res.group(1).strip()操作信息与发现 = 操作信息与发现.replace(" ", "")ls = 操作信息与发现.split("\n")操作信息与发现 = ";".join(ls).strip()res = re.search(r"摘要与建议(.*)建议:", nr, re.DOTALL)if res:摘要 = res.group(1).strip()摘要 = 摘要.replace(" ", "")ls = 摘要.split("\n")摘要 = ";".join(ls).strip()res = re.search(r"建议:(.*)签名", nr, re.DOTALL)if res:建议 = res.group(1).strip()建议 = 建议.replace(" ", "")ls = 建议.split("\n")建议 = ";".join(ls).strip()print("*" * 88)ls = [患者姓名, 标识号, 出生日期, 性别,保险集团, 胶囊标识号, 操作日期, 转诊医生,登记者, 预约者, 转诊原因, 体重,身高, 腰围, 体型, 通过胃部的时间,通过小肠的时间, 操作信息与发现, 摘要,建议]print(ls)if (all(ls)):return lselse:return lsif __name__ == '__main__':fields = ['患者姓名', '标识号', '出生日期', '性别', '保险集团', '胶囊标识号', '操作日期', '转诊医生', '登记者', '预约者', '转诊原因','体重', '身高', '腰围','体型', '通过胃部的时间', '通过小肠的时间', '操作信息与发现', '摘要','建议']print(fields)root = os.getcwd()ls = glob.glob("pdf报告\*.pdf")big_ls = []for i in ls:i=os.path.join(os.getcwd(),i)ls = getfields(i)big_ls.append(ls)for i in big_ls: print(i)wb = Workbook()ws = wb.activews.append(fields)for i in big_ls:ws.append(i)wb.save(r'pdf报告/pdf转换表格.xlsx')exit(0)

python学习笔记之pdf文档提取相关推荐

  1. python学习笔记之word文档提取

    """ # !/usr/bin/env python # -*- coding:utf-8 -*- # @Author : 史沐凡 # @file : pdf____张坤 ...

  2. python 描述符参考文档_描述符 - Python 学习笔记 - UDN开源文档

    描述符 很少有人会去刻意关注描述符 (Descriptor),尽管它时时刻刻以属性.方法的身份出现. 描述符协议: __get__(self, instance, owner) --> retu ...

  3. PyPDF2--如何使用python操作你的PDF文档

    PyPDF2–如何使用python操作你的PDF文档 前言 大家好!最近想操作一下PDF文档,总是收费,于是浅尝辄止地了解了一下python当中的PyPDF2这个库.借助本篇博客总结了一下个人所学到的 ...

  4. python处理word或者pdf文件_利用python程序生成word和PDF文档的方法

    一.程序导出word文档的方法 将web/html内容导出为world文档,再java中有很多解决方案,比如使用Jacob.Apache POI.Java2Word.iText等各种方式,以及使用fr ...

  5. php txtsql 说明,PHP学习笔记(2)txtSQL文档错误

    PHP学习笔记(2)txtSQL文档错误 次阅读 在使用txtSQL的过程中,发现一处帮助文档错误. 在使用altertable命令改变表名称时,发现如果按照帮助文档所说,使用如下代码无法改变表的名称 ...

  6. Python学习之批量word文档转pdf并统计其页码

    pypdf2是一个Python模块,可以用来读取.写入和操作PDF文件.要安装pypdf2模块,请按照以下步骤操作: 确保你已经安装了Python.你可以在终端或命令提示符中输入python --ve ...

  7. python之pdfminer:从PDF文档中抽取信息的工具

    pdfminer是一个用于从PDF文档中抽取信息的Python库.它提供了一系列的功能,使我们能够读取和解析PDF文件,并从中提取文本内容.元数据.页面布局和图片等.本文将详细介绍pdfminer库的 ...

  8. 使用Python的PyPD创建PDF文档

    原文地址: 顺藤摸瓜找到一个有很多学习python电子书的窝.在这里 希望你喜欢. 文章是自己瞎翻译的,不足之处,麻烦指出. 生成PDFs文件,我会将 ReportLab作为首选工具.不过,我发现在P ...

  9. python生成word 带目录_利用python程序生成word和PDF文档的方法

    一.程序导出word文档的方法 将web/html内容导出为world文档,再java中有很多解决方案,比如使用Jacob.Apache POI.Java2Word.iText等各种方式,以及使用fr ...

最新文章

  1. 25接口之间的单继承
  2. android Android-PullToRefresh 下拉刷新
  3. 计算机文献双语外文,中英文双语计算机专业毕业设计外文文献翻译成品:对Delphi的概述.docx...
  4. php mysql 写法_php 类的写法
  5. ProjectEuler 2
  6. python自动化测试框架结构_基于Python的HTTP接口自动化测试框架实现
  7. Jeecg-Boot 快速生成前后端代码
  8. cv2.imread读取图像结果none_PyTorch 42.图像操作
  9. 也写Jquery插件,拖动布局
  10. JMX系列之JmxMBeanServer
  11. CSS基础(六)——还原设计稿
  12. ElasticSearch索引模块
  13. 京东商城--商城研发部面试
  14. Android 使用SeekBar时动态显示进度且随SeekBar一起移动
  15. java考试成绩平均计算_Java计算平均成绩
  16. 从键盘读取一个数字,判断是否是3和5的倍数
  17. 网易云音乐在Ubuntu下出现部分音乐无法播放的解决方法
  18. python pyserial 无法识别VSPD创建的虚拟串口 windons 10
  19. jeesite下载excel模板
  20. 人脸识别算法源码SDK开发包人证比对二次开发检测核验开发包

热门文章

  1. Pycharm使用GPU,CUDA环境配置
  2. 【转载】Linux常用命令大全之文件处理命令(一)
  3. centos 开启关闭网卡(禁用网卡)
  4. TensorFlow 1.9终于对树莓派张开了怀抱:加入官方支持
  5. Sdwan关于工业控制组网
  6. mysql查询更新优化_mysql查询优化(持续更新中)
  7. java modbus4j_java使用modbus4j来实现modbusTCP通信
  8. project和program的区别
  9. Codeforces镜像站( Codeforces.live)
  10. 下列HTML标签是段落标签的是,HTML段落标签