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实现树的先序、中序、后序排序算法示例
Jun 23 Python
python执行使用shell命令方法分享
Nov 08 Python
pandas 对每一列数据进行标准化的方法
Jun 09 Python
python利用thrift服务读取hbase数据的方法
Dec 27 Python
Python函数中不定长参数的写法
Feb 13 Python
python使用Qt界面以及逻辑实现方法
Jul 10 Python
python实现切割url得到域名、协议、主机名等各个字段的例子
Jul 25 Python
python 调试冷知识(小结)
Nov 11 Python
pycharm通过anaconda安装pyqt5的教程
Mar 24 Python
Pandas实现一列数据分隔为两列
May 18 Python
详解Python设计模式之策略模式
Jun 15 Python
python缺失值的解决方法总结
Jun 09 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
【动漫杂谈】关于《请在T台上微笑》
2020/03/03 日漫
关于mysql 字段的那个点为是定界符
2007/01/15 PHP
PHP使用数组实现队列
2012/02/05 PHP
浅析ThinkPHP的模板输出功能
2014/07/01 PHP
laravel-admin 在列表页添加自定义按钮的例子
2019/09/30 PHP
js getElementsByTagName的简写方式
2010/06/27 Javascript
基于jQuery的自动完成插件
2011/02/03 Javascript
基于jquery的代码显示区域自动拉长效果
2011/12/07 Javascript
js面向对象编程之如何实现方法重载
2014/07/02 Javascript
JavaScript调用客户端Java程序的方法
2015/07/27 Javascript
jQuery组件easyui对话框实现代码
2016/08/25 Javascript
浅谈Javascript中的Label语句
2016/12/14 Javascript
jQuery 插件实现随机自由弹跳气泡样式
2017/01/12 Javascript
Angularjs Promise实例详解
2018/03/15 Javascript
Vue配合iView实现省市二级联动的示例代码
2018/07/27 Javascript
vue配置接口域名方法总结
2019/05/12 Javascript
JavaScript实现更换背景图片
2019/10/18 Javascript
[03:49]2016完美“圣”典风云人物:AMS专访
2016/12/06 DOTA
Python处理RSS、ATOM模块FEEDPARSER介绍
2015/02/18 Python
基于Django用户认证系统详解
2018/02/21 Python
python调用Matplotlib绘制分布点并且添加标签
2018/05/31 Python
对pandas的行列名更改与数据选择详解
2018/11/12 Python
Python使用线程来接收串口数据的示例
2019/07/02 Python
Python实现FTP文件传输的实例
2019/07/07 Python
Django基础三之视图函数的使用方法
2019/07/18 Python
PyQt5通信机制 信号与槽详解
2019/08/07 Python
详解python tcp编程
2020/08/24 Python
python“静态”变量、实例变量与本地变量的声明示例
2020/11/13 Python
Python字符串的15个基本操作(小结)
2021/02/03 Python
Python使用tkinter实现小时钟效果
2021/02/22 Python
诚信考试承诺书
2014/03/27 职场文书
含预算的公司户外活动方案
2014/08/16 职场文书
公司授权委托书格式范文
2014/10/02 职场文书
全国法制宣传日活动总结
2015/05/05 职场文书
2015年档案室工作总结
2015/05/23 职场文书
MyBatis XPathParser解析器使用范例详解
2022/07/15 Java/Android