同一个文件夹中保存了1000多份PDF文档,需要从每份PDF文档中提取关键的信息,将每一条信息存入csv表格作为一个单元格内容,同一份PDF文档中的多条信息生成一行数据,保存为1000多行固定格式的数据。
解决思路:
1、利用pdfplumber模块来实现对PDF文件中的文字和表格进行提取,将提取出来的内容写入一份csv表格中,每一份PDF文件生成一行数据。
2、PDF文件中的文字使用正值表达式进行筛选。
3、PDF文件中的表格直接提取表格内容,再分列填充为csv表格的新列。
4、设置好csv表格的表头信息,每份PDF文件关键信息生成一个列表,将列表写入csv表格的行。
5、遍历PDF文档所在文件夹中的每一个PDF,按上述方法提取信息。
难点:
1、每份PDF文档虽然目录相同,但是内容存在差异,总页数不相等。无法直接指定提取内容在第几页。
2、每份PDF文档中存在多份表格,而且同一表头的表格在不同PDF文档中的行数不尽相同,有的行数多有的行数少,导致页数不一致。有的表格跨页。
3、避免中间报错导致生成的数据尚未保存,所以采取逐条数据写入csv表格,即使中间报错也不必重新开始、节省时间。
使用的库如下:

import pdfplumber
import re
import os
import numpy as np
import sys
import csv
import time,datetime

读取所有PDF文件名称,设置csv表格表头:

path1="D:\PDF文件" #定义PDF数据存放的文件夹
path2="D:\PDF文件输出" #定义解析数据存放的文件夹
tempfilename = "PDF报告"
name_list=os.listdir(path1) #用os库获取该文件夹下的PDF文件名称
#print(name_list)X = '解析结果'
def create_csv(X,csv_head):path = str(path2+"\\"+tempfilename+"(%s).csv" % (X))#同目录下的新文件名                        with open(path,'w',newline = '',encoding='utf-8_sig') as f:csv_write = csv.writer(f)        csv_write.writerow(csv_head)csv_head = ["公司名称","数据日期","发货日期","数量",'商品名称1','商品1解释','商品名称2','商品2解释','商品名称3','商品3解释',\"发货状态","统一代码","批号","日期","金额(万元)","实收(万元)",'收货人','住所']#表头
create_csv(X,csv_head)def write_csv(X,data_row):path = str(path2+"\\"+tempfilename+"(%s).csv" % (X))#                        with open(path,mode='a',newline = '',encoding='utf-8_sig') as f:csv_write = csv.writer(f)        csv_write.writerow(data_row)

pdfplumber批量提取PDF重点内容并保存到csv数据表相关推荐

  1. 如何用Python批量提取PDF文本内容?

    本文为你展示,如何用Python把许多PDF文件的文本内容批量提取出来,并且整理存储到数据框中,以便于后续的数据分析. 问题 最近,读者们在后台的留言,愈发五花八门了. 写了几篇关于自然语言处理的文章 ...

  2. python怎么读取pdf为文本_轻松用Python批量提取PDF文本内容,这个小技巧告诉你!...

    轻松用Python批量提取PDF文本内容,这个小技巧告诉你!-1.jpg (22.73 KB, 下载次数: 0) 2018-9-7 08:33 上传 本文为你展示,如何用Python把许多PDF文件的 ...

  3. python 如何批量提取文件中的字符_如何用Python批量提取PDF文本内容?

    本文为你展示,如何用Python把许多PDF文件的文本内容批量提取出来,并且整理存储到数据框中,以便于后续的数据分析. 问题 最近,读者们在后台的留言,愈发五花八门了. 写了几篇关于自然语言处理的文章 ...

  4. python提取pdf文件内容_如何用Python批量提取PDF文本内容?

    本文为你展示,如何用Python把许多PDF文件的文本内容批量提取出来,并且整理存储到数据框中,以便于后续的数据分析. 问题 最近,读者们在后台的留言,愈发五花八门了. 写了几篇关于自然语言处理的文章 ...

  5. Python 使用pdfplumber直接提取PDF文本内容

    前提:提取文本内容的文件必须是应用服务生成PDF文件,而非扫描的pdf文档,当前pdfplumber的版本为0.5.28 第一步:在服务应用的终端中使用下述命令安装pdfplumber包 poetry ...

  6. 如何批量提取 PDF 文档内容,将 PDF 格式文档转为 Txt 文本格式

    概要:PDF 文档常常用来阅读.预览或者存档一些资料,PDF 支持的内容也是比较丰富的.可以支持图片.文本等多种类型的元素.那有时候我们就需要将一些纯文本的 PDF 文档中的文字提取出来,转为一个 T ...

  7. Python3,9行批量提取PDF文件的指定内容,这种操作,保证人见人爱....

    批量提取PDF文件指定内容 1.引言 2.代码实战 2.1 介绍 2.2 安装 2.3 实例 3.总结 1.引言 小屌丝:鱼哥, 你有没有什么办法,提取PDF文档的内容. 小鱼:这个还问我?? 小屌丝 ...

  8. python批量提取pdf的数据_Python批量提取PDF文件中文本的脚本

    本文实例为大家分享了Python批量提取PDF文件中文本的具体代码,供大家参考,具体内容如下 首先需要执行命令pip install pdfminer3k来安装处理PDF文件的扩展库. import ...

  9. 通过Python的pdfplumber库提取pdf中表格数据

    文章目录 前言 一.pdfplumber库是什么? 二.安装pdfplumber库 三.查看pdfplumber库版本 四.提取pdf中表格数据 1.引入库 2.定义pdf文件路径 3.打开pdf文件 ...

最新文章

  1. No module named 'numpy.core._multiarray_umath'
  2. Java集合框架:ArrayList
  3. oracle 存储过程获取当前日期
  4. 网络编程之bind()的未解之谜
  5. mysql 基础面试_面试必问之mysql基础
  6. nodejs文件相关模块
  7. 秒杀于丹、蒋勋、蒙曼,每篇都有10万+的潜质。《六神磊磊读唐诗》,5星。
  8. Android开发 匹配软键盘回车键
  9. 一文带你搞懂Python中的文件操作
  10. NOIP初赛知识点总结
  11. C++ #ifdef 和 #endif
  12. java游戏 天剑传承,《天剑传承》之无双迷宫攻略
  13. python自动华 (十八)
  14. 没钱没资源没人脉?年入千万的她写了这本副业思维的书
  15. opencv(c++)几何变换------图像平移、旋转、缩放、翻转、剪贴
  16. 小程序真机调试连接本地服务器进行调试
  17. 知识图谱构建——D2R的使用(二)
  18. java来电_JAVA来电显示接口调用代码实例
  19. 电脑莫名多出一个管理员账户
  20. 【Java面试】Java 内存溢出 栈溢出的原因与排查方法

热门文章

  1. 4.4.2 Measuring Credit Risk
  2. java derby 网络模式_Derby 使用的2种方式:内嵌和独立
  3. ABLIC Inc.推出业界最小型(*1)UV-A、UV-B传感硅光电二极管之一S-5420
  4. Linux常用命令:文件及磁盘
  5. python怎样把if语句写成一行_1.1 if语句
  6. 生活随记-知识的价值
  7. Keil5 MDK(MDK-Community edition)社区版安装教程
  8. 基于openCV3的颜色通道分离及多通道图像混合
  9. 极智AI | 多模态领域先行者 详解 CLIP 算法实现
  10. CSS的clip-path属性使用