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实现测试磁盘性能的方法
Mar 12 Python
Python合并字典键值并去除重复元素的实例
Dec 18 Python
python爬虫的工作原理
Mar 05 Python
Python 3中print函数的使用方法总结
Aug 08 Python
利用python循环创建多个文件的方法
Oct 25 Python
对python调用RPC接口的实例详解
Jan 03 Python
TensorFlow查看输入节点和输出节点名称方式
Jan 04 Python
django实现HttpResponse返回json数据为中文
Mar 27 Python
Python PyQt5整理介绍
Apr 01 Python
Python爬虫工具requests-html使用解析
Apr 29 Python
python中delattr删除对象方法的代码分析
Dec 15 Python
端午节将至,用Python爬取粽子数据并可视化,看看网友喜欢哪种粽子吧!
Jun 11 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实现Ftp用户的在线管理
2012/02/16 PHP
ThinkPHP行为扩展Behavior应用实例详解
2014/07/22 PHP
php把大写命名转换成下划线分割命名
2015/04/27 PHP
JS对URL字符串进行编码/解码分析
2008/10/25 Javascript
javascript转换字符串为dom对象(字符串动态创建dom)
2010/05/10 Javascript
推荐20家国外的脚本下载网站
2011/04/28 Javascript
详谈JavaScript内存泄漏
2014/11/14 Javascript
Vue2.0用 watch 观察 prop 变化(不触发)
2017/09/08 Javascript
AngularJS 中的数据源的循环输出
2017/10/12 Javascript
Vue中对比scoped css和css module的区别
2018/05/17 Javascript
微信小程序methods中定义的方法互相调用的实例代码
2018/08/07 Javascript
基于element-ui组件手动实现单选和上传功能
2018/12/06 Javascript
微信小程序云开发(数据库)详解
2019/05/17 Javascript
vue实现公告栏文字上下滚动效果的示例代码
2020/06/16 Javascript
微信小程序中target和currentTarget的区别小结
2020/11/06 Javascript
Vue如何循环提取对象数组中的值
2020/11/18 Vue.js
JS创建自定义对象的六种方法总结
2020/12/15 Javascript
python 正则式 概述及常用字符
2009/05/07 Python
windows下python连接oracle数据库
2017/06/07 Python
Python Paramiko模块的使用实际案例
2018/02/01 Python
python如何修改装饰器中参数
2018/03/20 Python
Python走楼梯问题解决方法示例
2018/07/25 Python
Python从list类型、range()序列简单认识类(class)【可迭代】
2019/05/31 Python
简单了解django orm中介模型
2019/07/30 Python
Python 实现取多维数组第n维的前几位
2019/11/26 Python
python二维键值数组生成转json的例子
2019/12/06 Python
Tensorflow训练MNIST手写数字识别模型
2020/02/13 Python
利用python实现逐步回归
2020/02/24 Python
python 实现超级玛丽游戏
2020/11/25 Python
C++如何引用一个已经定义过的全局变量
2014/08/25 面试题
Java面向对象面试题
2016/12/26 面试题
浙江文明网签名寄语
2014/01/18 职场文书
师德师风整改措施
2014/10/24 职场文书
2015年团支部年度工作总结
2015/05/27 职场文书
升学宴家长答谢词
2015/09/29 职场文书
使用Oracle跟踪文件的问题详解
2021/06/28 Oracle