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定时检查启动某个exe程序适合检测exe是否挂了
Jan 21 Python
用实例解释Python中的继承和多态的概念
Apr 27 Python
详解Python中使用base64模块来处理base64编码的方法
Jul 01 Python
Python中函数及默认参数的定义与调用操作实例分析
Jul 25 Python
Django实现登录随机验证码的示例代码
Jun 20 Python
Python实现重建二叉树的三种方法详解
Jun 23 Python
Python爬虫实现验证码登录代码实例
May 10 Python
基于树莓派的语音对话机器人
Jun 17 Python
浅谈Python中的异常和JSON读写数据的实现
Feb 27 Python
Python爬虫爬取微信朋友圈
Aug 06 Python
Python实现手势识别
Oct 21 Python
pyspark对Mysql数据库进行读写的实现
Dec 30 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
解决中英文字符串长度问题函数
2007/01/16 PHP
php设计模式 FlyWeight (享元模式)
2011/06/26 PHP
解析ajax事件的调用顺序
2013/06/17 PHP
通过MSXML2自动获取QQ个人头像及在线情况(给初学者)
2007/01/22 Javascript
jQuery 技巧大全(新手入门篇)
2009/05/12 Javascript
javascript 框架小结 个人工作经验
2009/06/13 Javascript
JS判断页面加载状态以及添加遮罩和缓冲动画的代码
2012/10/11 Javascript
JS分页控件 可用于无刷新分页
2013/07/23 Javascript
jQuery使用ajaxSubmit()提交表单示例
2014/04/04 Javascript
jQuery ui 利用 datepicker插件实现开始日期(minDate)和结束日期(maxDate)
2014/05/22 Javascript
jQuery EasyUI datagrid实现本地分页的方法
2015/02/13 Javascript
学习JavaScript鼠标响应事件
2015/12/25 Javascript
Bootstrap表单布局
2016/07/19 Javascript
Js操作DOM元素及获取浏览器高宽的简单方法
2016/09/08 Javascript
JavaScript之面向对象_动力节点Java学院整理
2017/06/29 Javascript
vue axios请求超时的正确处理方法
2018/04/02 Javascript
vue如何安装使用Quill富文本编辑器
2018/09/21 Javascript
[01:23:35]Ti4主赛事胜者组 DK vs EG 1
2014/07/19 DOTA
[42:32]完美世界DOTA2联赛循环赛 Magma vs PXG BO2第二场 10.28
2020/10/28 DOTA
python实现多线程抓取知乎用户
2016/12/12 Python
使用python为mysql实现restful接口
2018/01/05 Python
Python操作MySQL数据库的两种方式实例分析【pymysql和pandas】
2019/03/18 Python
python sorted方法和列表使用解析
2019/11/18 Python
pandas数据选取:df[] df.loc[] df.iloc[] df.ix[] df.at[] df.iat[]
2020/04/24 Python
Django视图、传参和forms验证操作
2020/07/15 Python
表单button的outline在firefox浏览器下的问题
2012/12/24 HTML / CSS
浅谈CSS3动画的回调处理
2016/07/21 HTML / CSS
劳资员岗位职责
2013/11/11 职场文书
《忆江南》教学反思
2014/04/07 职场文书
工程项目经理岗位职责
2015/02/02 职场文书
2015年新农合工作总结
2015/03/30 职场文书
汉字听写大会观后感
2015/06/12 职场文书
通过Qt连接OpenGauss数据库的详细教程
2021/06/23 PostgreSQL
MySQL8.0升级的踩坑历险记
2021/11/01 MySQL
Python matplotlib可视化之绘制韦恩图
2022/02/24 Python
MySQL聚簇索引和非聚簇索引的区别详情
2022/06/14 MySQL