python3用PyPDF2解析pdf文件,用正则匹配数据方式


Posted in Python onMay 12, 2020

我就废话不多说了,大家还是看代码吧!

import PyPDF2
 import re
 
 pdf_file = open('xxx.pdf', mode='rb')
 read_pdf = PyPDF2.PdfFileReader(pdf_file)
 # 获取pdf文件的所有页数
 number_of_pages = read_pdf.getNumPages()
 # print('total_page: ', number_of_pages)
 line_list = []
 # 循环遍历每一页
 for i in range(0, number_of_pages):
  # 读取每一页的内容
  page = read_pdf.getPage(i)
  page_content = page.extractText()
  # 将这一页的内容分割为列表,,并相加所有的页面内容
  line_list += page_content.split()
 # 关闭pdf文件
 pdf_file.close()
 line_buf = ''
 for buf in line_list:
  line_buf = line_buf+' '+buf
 # 匹配数据:第一列和第二列 如:000069.sz 和 100
 # print(line_buf)
 a = re.findall('([0-9]+[0-9]+[0-9]+[0-9]+[0-9]+[0-9]+.[a-z]+[a-z])', line_buf)
 b = re.findall('[0-9]+[0-9]+[0-9]+[0-9]+[0-9]+[0-9]+.[a-z]+[a-z].([0-9,]+)', line_buf)
 # print(b)
 for i in range(0, len(a)):
  a[i] = a[i].upper()
 for i in range(0, len(b)):
  b[i] = int(b[i].replace(',', ''))
 # print(b)
 # 组成字典
 results = dict(zip(a, b))

正则的其他用法:

fp = open(filename,"w")
fp.write(re.search('(StockDescription:)([a-zA-Z]+-[a-zA-Z]+)',line_buf).group(2) +',')
fp.write(time.strftime('%Y%m%d',time.strptime(re.search('(TradeDate:)([0-9]+[a-zA-Z]+[0-9]+)',line_buf).group(2),'%d%B%Y')) +',')
fp.write(re.search('(Price:[A-Z]+)([0-9.,]+)',line_buf).group(2).replace(',','')+',')
fp.close()

补充知识:Logger logger = Logger.getLogger(Class clazz)获取不得的问题

因为有多个同名的Logger类,在测试的时候没注意就直接选了第一个,发现不能用,以为是JAR包的问题,重新导一遍也不能,配置文件检查过也不行,最后发现是类用错了。

python3用PyPDF2解析pdf文件,用正则匹配数据方式

要打印日志用的是log4j包里的Logger类

以上这篇python3用PyPDF2解析pdf文件,用正则匹配数据方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中列表(list)操作方法汇总
Aug 18 Python
Python编程实现二叉树及七种遍历方法详解
Jun 02 Python
python计算auc指标实例
Jul 13 Python
Python实现的批量修改文件后缀名操作示例
Dec 07 Python
django 自定义过滤器的实现
Feb 26 Python
Python使用百度api做人脸对比的方法
Aug 28 Python
PYTHON实现SIGN签名的过程解析
Oct 28 Python
利用Python绘制有趣的万圣节南瓜怪效果
Oct 31 Python
Python操作Jira库常用方法解析
Apr 10 Python
Python自动化测试中yaml文件读取操作
Aug 20 Python
Django vue前后端分离整合过程解析
Nov 20 Python
基于Python实现粒子滤波效果
Dec 01 Python
Python如何根据时间序列数据作图
May 12 #Python
python logging.info在终端没输出的解决
May 12 #Python
你应该知道的Python3.6、3.7、3.8新特性小结
May 12 #Python
python将logging模块封装成单独模块并实现动态切换Level方式
May 12 #Python
Python PyQt5模块实现窗口GUI界面代码实例
May 12 #Python
从0到1使用python开发一个半自动答题小程序的实现
May 12 #Python
Python列表去重复项的N种方法(实例代码)
May 12 #Python
You might like
smarty实例教程
2006/11/19 PHP
PHP 单引号与双引号的区别
2009/11/24 PHP
php获取从百度搜索进入网站的关键词的详细代码
2014/01/08 PHP
动态调用css文件——jquery的应用
2007/02/20 Javascript
javascript 鼠标滚轮事件
2009/04/09 Javascript
JQuery+JS实现仿百度搜索结果中关键字变色效果
2011/08/02 Javascript
jquery动态增加删除表格行的小例子
2013/11/14 Javascript
Seajs的学习笔记
2014/03/04 Javascript
多个$(document).ready()的执行顺序实例分析
2014/07/26 Javascript
对比分析json及XML
2014/11/28 Javascript
javascript基于DOM实现省市级联下拉框的方法
2015/05/14 Javascript
JS实现密码框根据焦点的获取与失去控制文字的消失与显示效果
2015/11/26 Javascript
js代码实现点击按钮出现60秒倒计时
2021/01/28 Javascript
CSS或者JS实现鼠标悬停显示另一元素
2016/01/22 Javascript
微信js-sdk预览图片接口及从拍照或手机相册中选图接口用法示例
2016/10/13 Javascript
JavaScript中匿名函数的递归调用
2017/01/22 Javascript
ES6中Symbol类型用法实例详解
2017/04/06 Javascript
jQuery绑定事件方法及区别(bind,click,on,live,one)
2017/08/14 jQuery
微信小程序中button去除默认的边框实例代码
2019/08/01 Javascript
[04:49]2014DOTA2国际邀请赛 Newbee顺利挺进总决赛 ImbaTV独家专访
2014/07/19 DOTA
[00:59]DOTA2背景故事第二期之四大基本法则
2020/07/07 DOTA
Python的Flask框架中实现简单的登录功能的教程
2015/04/20 Python
Python3.4实现从HTTP代理网站批量获取代理并筛选的方法示例
2017/09/26 Python
pandas去除重复列的实现方法
2019/01/29 Python
浅谈ROC曲线的最佳阈值如何选取
2020/02/28 Python
python温度转换华氏温度实现代码
2020/12/06 Python
中国一家专注拼团的社交购物网站:拼多多
2018/06/13 全球购物
英国领先的露营和露营车品牌之一:OLPRO
2019/08/06 全球购物
音乐学院硕士生的自我评价分享
2013/11/01 职场文书
运动会400米加油稿(8篇)
2014/09/22 职场文书
群众路线自我剖析材料
2014/10/08 职场文书
优秀工作者事迹材料
2014/12/26 职场文书
解除劳动合同通知书范本
2015/04/16 职场文书
银行保安拾金不昧表扬稿
2015/05/05 职场文书
同步小康驻村工作简报
2015/07/20 职场文书
《好妈妈胜过好老师》:每个孩子的优秀都是有源头的
2020/01/03 职场文书