python提取pdf中的图片_提取PDF中内容(表格篇)

由于(质量优质)PDF较好的阅读性,工作当中难免有文件使用PDF格式保存和流通的。但是由于PDF过于追求视觉的享受,所以在编辑其内容元素上相较微软office系列的确困难。不时会碰到看的到内容却难以直接利用编辑的情况,即使拥有Adobe或者国产福昕等软件高级版的加持,批量处理,将其内容变成excel等容易处理的数据形式依然有所不便。所以借用Python超大的模块库当中的pdfplumber来解决这个问题(其主要针对PDF中的表格处理有优势,关于文字和图片等之后再更)

为了方便展示,我仅用跨2页的表格做展示,多页原理相同,单页就更加简单。由于可能涉密我把关键数字隐去,不过跨页的结构明显。我们的目标就是把PDF中的表格内容下载成excel形式保存。

22abb4282c1d33c359cb9124a835b188.png

# pdfplumber 获取PDF中的表格和数据import pdfplumber #读取文件pdf = pdfplumber.open("tableTest.pdf")#提取表格自定义函数,模块自带函数pages的参数[代表正在获取的页面] def getTable(pageNumber):      #.extract_table()函数代表正在提取目标page中的表格中的数据    table = pdf.pages[int(pageNumber)].extract_table()    return table#这就不用解释了import pandas as pd # 建立一个空list来存放提取额数据dataList = [] #你可以把范围设置到任何需要的数字,这里pdf只有两页,故为0和1。for y in (0,1):     #利用前述自定义函数对每一页去提取数据    for x in getTable(y):        #巧用filter函数--去掉原有格式当中额空值和None。        dataList.append(list(filter(None,x)))        #print(list(filter(None,i)))        #整理表格,这个只涉及pandas知识故不再赘诉finaleTable = pd.DataFrame(list(dataList))finaleTable.columns = finaleTable.loc[0,:]finaleTable.drop(0,axis=0,inplace=True)finaleTable.to_excel('test.xlsx',encoding='GBK')

运行结果如下,核心代码也就10行,还犹豫啥--人生苦短Python是岸!

99687d0ebe445486fe159c274cc523dc.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值