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列表推导式的使用方法
Nov 21 Python
Python读写Excel文件方法介绍
Nov 22 Python
Python基于Tkinter实现的记事本实例
Jun 17 Python
使用Python对Csv文件操作实例代码
May 12 Python
Python使用回溯法子集树模板获取最长公共子序列(LCS)的方法
Sep 08 Python
python2.7+selenium2实现淘宝滑块自动认证功能
Feb 24 Python
Python+OpenCV目标跟踪实现基本的运动检测
Jul 10 Python
python 读取视频,处理后,实时计算帧数fps的方法
Jul 10 Python
pygame用blit()实现动画效果的示例代码
May 28 Python
Python脚本如何在bilibili中查找弹幕发送者
Jun 04 Python
python导入库的具体方法
Jun 18 Python
python 指定源路径来解决import问题的操作
Mar 04 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
PHP中如何定义和使用常量
2013/02/28 PHP
深入for,while,foreach遍历时间比较的详解
2013/06/08 PHP
PHP7.0安装笔记整理
2015/08/28 PHP
PHP+ajax实现获取新闻数据简单示例
2018/05/08 PHP
PHP应用跨时区功能的实现方法
2019/03/21 PHP
一份老外写的XMLHttpRequest代码多浏览器支持兼容性
2007/01/11 Javascript
js停止输出代码
2008/07/20 Javascript
jQuery的链式调用浅析
2010/12/03 Javascript
JS中实现replaceAll的方法(实例代码)
2013/11/12 Javascript
Jquery的each里用return true或false代替break或continue
2014/05/21 Javascript
js中键盘事件实例简析
2015/01/10 Javascript
浅谈javascript构造函数与实例化对象
2015/06/22 Javascript
微信开发 消息推送实现代码
2016/10/21 Javascript
jQuery模拟完美实现经典FLASH导航动画效果【附demo源码下载】
2016/11/09 Javascript
jQuery获取table表中的td标签(实例讲解)
2017/07/28 jQuery
JS设计模式之单例模式(一)
2017/09/29 Javascript
JavaScript箭头函数中的this详解
2019/06/19 Javascript
Vue+Vuex实现自动登录的知识点详解
2020/03/04 Javascript
javascript canvas时钟模拟器
2020/07/13 Javascript
Python批量重命名同一文件夹下文件的方法
2015/05/25 Python
Python计算一个文件里字数的方法
2015/06/15 Python
Python使用progressbar模块实现的显示进度条功能
2018/05/31 Python
利用django创建一个简易的博客网站的示例
2020/09/29 Python
欧洲著名的珠宝和手表网上商城:uhrcenter
2017/04/10 全球购物
我能否用void** 指针作为参数, 使函数按引用接受一般指针
2013/02/16 面试题
几个常见的消息中间件(MOM)
2014/01/08 面试题
宿舍使用违章电器检讨书
2014/01/12 职场文书
试用期员工考核制度
2014/01/22 职场文书
关于抽烟的检讨书
2014/02/25 职场文书
标准单位租车协议书
2014/09/23 职场文书
房屋产权证明书
2014/10/15 职场文书
限期整改通知书
2015/04/22 职场文书
举起手来观后感
2015/06/09 职场文书
2016年公司新年寄语
2015/08/17 职场文书
Golang并发操作中常见的读写锁详析
2021/08/30 Golang
基于redis+lua进行限流的方法
2022/07/23 Redis