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实现计算资源图标crc值的方法
Oct 05 Python
利用python程序生成word和PDF文档的方法
Feb 14 Python
Python内置模块hashlib、hmac与uuid用法分析
Feb 12 Python
python用插值法绘制平滑曲线
Feb 19 Python
pandas DataFrame索引行列的实现
Jun 04 Python
python Django的web开发实例(入门)
Jul 31 Python
Python 实现遥感影像波段组合的示例代码
Aug 04 Python
获取Pytorch中间某一层权重或者特征的例子
Aug 17 Python
opencv设置采集视频分辨率方式
Dec 10 Python
Python通过两个dataframe用for循环求笛卡尔积
Apr 29 Python
Python基于Tkinter编写crc校验工具
May 06 Python
python将字典内容写入json文件的实例代码
Aug 12 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
linux下使用ThinkPHP需要注意大小写导致的问题
2011/08/02 PHP
解析如何屏蔽php中的phpinfo()函数
2013/06/06 PHP
PHP中spl_autoload_register()和__autoload()区别分析
2014/05/10 PHP
PHP查询快递信息的方法
2015/03/07 PHP
Smarty模板语法详解
2019/07/20 PHP
JavaScript 继承详解 第一篇
2009/08/30 Javascript
script标签的 charset 属性使用说明
2010/12/04 Javascript
人人网javascript面试题 可以提前实现下
2012/01/05 Javascript
javascript事件函数中获得事件源的两种不错方法
2014/03/17 Javascript
基于 Node.js 实现前后端分离
2016/04/23 Javascript
jQuery搜索框效果实现代码(百度关键词联想)
2021/02/25 Javascript
AngularJS自定义插件实现网站用户引导功能示例
2016/11/07 Javascript
jQuery实现判断控件是否显示的方法
2017/01/11 Javascript
jquery hover 不停闪动问题的解决方法(亦为stop()的使用)
2017/02/10 Javascript
Vue网页html转换PDF(最低兼容ie10)的思路详解
2017/08/24 Javascript
移动web开发之touch事件实例详解
2018/01/17 Javascript
Angularjs实现多图片上传预览功能
2018/07/18 Javascript
vue elementUI table表格数据 滚动懒加载的实现方法
2019/04/04 Javascript
浅谈layui使用模板引擎动态渲染元素要注意的问题
2019/09/14 Javascript
[02:04]2014DOTA2国际邀请赛 DK一个时代的落幕
2014/07/21 DOTA
PyQt5每天必学之关闭窗口
2018/04/19 Python
Python 查找字符在字符串中的位置实例
2018/05/02 Python
Selenium Webdriver元素定位的八种常用方式(小结)
2021/01/13 Python
详解CSS3阴影 box-shadow的使用和技巧总结
2016/12/03 HTML / CSS
函授毕业自我鉴定
2013/12/19 职场文书
简历自我评价怎么写呢?
2014/01/06 职场文书
仓管岗位职责范本
2014/02/08 职场文书
高中运动会入场词
2014/02/14 职场文书
大学生会计职业生涯规划范文
2014/02/28 职场文书
婚礼司仪主持词
2014/03/14 职场文书
副护士长竞聘演讲稿
2014/04/30 职场文书
党支部先进事迹材料
2014/12/24 职场文书
留学推荐信中文范文
2015/03/26 职场文书
办公用品质量保证书
2015/05/11 职场文书
情人节单身感言
2015/08/03 职场文书
2016党校培训心得体会
2016/01/07 职场文书