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模拟随机游走图形效果示例
Feb 06 Python
Python中单例模式总结
Feb 20 Python
Django CBV与FBV原理及实例详解
Aug 12 Python
使用Windows批处理和WMI设置Python的环境变量方法
Aug 14 Python
Python在OpenCV里实现极坐标变换功能
Sep 02 Python
pygame实现俄罗斯方块游戏(AI篇2)
Oct 29 Python
Anaconda+Pycharm环境下的PyTorch配置方法
Mar 13 Python
pytorch判断是否cuda 判断变量类型方式
Jun 23 Python
PyQt5-QDateEdit的简单使用操作
Jul 12 Python
Python CategoricalDtype自定义排序实现原理解析
Sep 11 Python
python 解决函数返回return的问题
Dec 05 Python
Python用tkinter实现自定义记事本的方法详解
Mar 31 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实现按文件名搜索文件的远程文件查找器
2014/05/10 PHP
PHP数据对象PDO操作技巧小结
2016/09/27 PHP
Laravel 中使用 Vue.js 实现基于 Ajax 的表单提交错误验证操作
2017/06/30 PHP
详解phpstorm2020最新破解方法
2020/09/17 PHP
Javascript 继承机制的实现
2009/08/12 Javascript
JS获取各种宽度、高度的简单介绍
2014/12/19 Javascript
JQuery select(下拉框)操作方法汇总
2015/04/15 Javascript
js实现键盘自动打字效果
2016/12/23 Javascript
详解JavaScript树结构
2017/01/09 Javascript
jQuery.Form上传文件操作
2017/02/05 Javascript
JavaScript 基础表单验证示例(纯Js实现)
2017/07/20 Javascript
webpack实现一个行内样式px转vw的loader示例
2018/09/13 Javascript
解决vue组件props传值对象获取不到的问题
2019/06/06 Javascript
微信小程序防止多次点击跳转和防止表单组件输入内容多次验证功能(函数防抖)
2019/09/19 Javascript
webpack常用构建优化策略小结
2019/11/21 Javascript
vue不操作dom实现图片轮播的示例代码
2019/12/18 Javascript
[00:03]DOTA2新版本PA至宝展示
2014/11/19 DOTA
在Python中移动目录结构的方法
2016/01/31 Python
Python实现的生产者、消费者问题完整实例
2018/05/30 Python
Python闭包函数定义与用法分析
2018/07/20 Python
Python进程间通信multiprocess代码实例
2020/03/18 Python
css3 background属性调整增强介绍
2010/12/18 HTML / CSS
澳大利亚在线时尚精品店:Hello Molly
2018/02/26 全球购物
英国复古皮包品牌:Beara Beara
2018/07/18 全球购物
Feelunique澳大利亚:欧洲的化妆品零售电商
2019/12/18 全球购物
火灾现场处置方案
2014/05/28 职场文书
临床医学专业求职信
2014/08/08 职场文书
乡镇创先争优活动总结
2014/08/28 职场文书
2014入党积极分子批评与自我批评思想汇报
2014/09/20 职场文书
甜品店创业计划书
2014/09/21 职场文书
学雷锋活动简报
2015/07/20 职场文书
教师研修随笔感言
2015/11/18 职场文书
CSS3中Animation实现简单的手指点击动画的示例
2021/07/15 HTML / CSS
OpenCV图像变换之傅里叶变换的一些应用
2021/07/26 Python
教你一步步实现一个简易promise
2021/11/02 Javascript
Java处理延时任务的常用几种解决方案
2022/06/01 Java/Android