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 max内置函数详细介绍
Nov 17 Python
独特的python循环语句
Nov 20 Python
TF-IDF与余弦相似性的应用(二) 找出相似文章
Dec 21 Python
python 删除列表里所有空格项的方法总结
Apr 18 Python
python list是否包含另一个list所有元素的实例
May 04 Python
python 数字类型和字符串类型的相互转换实例
Jul 17 Python
Python 存储字符串时节省空间的方法
Apr 23 Python
基于python分析你的上网行为 看看你平时上网都在干嘛
Aug 13 Python
Python matplotlib绘制饼状图功能示例
Sep 10 Python
TensorBoard 计算图的可视化实现
Feb 15 Python
详解Python中的GIL(全局解释器锁)详解及解决GIL的几种方案
Jan 29 Python
解决Python中的modf()函数取小数部分不准确问题
May 28 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
第4章 数据处理-php数组的处理-郑阿奇
2011/07/04 PHP
取得单条网站评论以数组形式进行输出
2014/07/28 PHP
PHP计算当前坐标3公里内4个角落的最大最小经纬度实例
2016/02/26 PHP
Ajax提交表单时验证码自动验证 php后端验证码检测
2016/07/20 PHP
php实现文章置顶功能的方法
2016/10/20 PHP
thinkPHP5框架导出Excel文件简单操作示例
2018/08/03 PHP
TP5(thinkPHP5框架)基于bootstrap实现的单图上传插件用法示例
2019/05/29 PHP
php 函数中静态变量使用的问题实例分析
2020/03/05 PHP
event.srcElement 用法笔记e.target
2009/12/18 Javascript
jQuery1.6 类型判断实现代码
2011/09/01 Javascript
js改变img标签的src属性在IE下没反应的解决方法
2013/07/23 Javascript
jQuery中事件与动画的总结分享
2016/05/24 Javascript
SelecT下拉框选中和取值的解决方法
2016/11/22 Javascript
jQuery简单实现遍历单选框的方法
2017/03/06 Javascript
基于Bootstrap table组件实现多层表头的实例代码
2017/09/07 Javascript
Python中处理字符串的相关的len()方法的使用简介
2015/05/19 Python
浅析Python基础-流程控制
2016/03/18 Python
Python分支结构(switch)操作简介
2018/01/17 Python
TensorFlow saver指定变量的存取
2018/03/10 Python
python对视频画框标记后保存的方法
2018/12/07 Python
python判断单向链表是否包括环,若包含则计算环入口的节点实例分析
2019/10/23 Python
numpy数组做图片拼接的实现(concatenate、vstack、hstack)
2019/11/08 Python
浅谈图像处理中掩膜(mask)的意义
2020/02/19 Python
Python3自定义http/https请求拦截mitmproxy脚本实例
2020/05/11 Python
Python操作MySQL数据库的示例代码
2020/07/13 Python
python3访问字典里的值实例方法
2020/11/18 Python
python切片作为占位符使用实例讲解
2021/02/17 Python
英国游戏机和游戏购物网站:365games.co.uk
2018/06/18 全球购物
加州风格的游泳和沙滩装品牌:Cupshe
2019/06/10 全球购物
初一学生评语大全
2014/04/24 职场文书
我们的节日中秋活动方案
2014/08/19 职场文书
自我介绍演讲稿范文
2014/08/21 职场文书
2014最新预备党员思想汇报范文:中国梦,我的梦
2014/10/25 职场文书
《植物妈妈有办法》教学反思
2016/02/23 职场文书
六年级作文之家庭作文
2019/12/12 职场文书
mybatis 解决从列名到属性名的自动映射失败问题
2021/06/30 Java/Android