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(Tornado)模拟登录小米抢手机
Nov 12 Python
python对象及面向对象技术详解
Jul 19 Python
从请求到响应过程中django都做了哪些处理
Aug 01 Python
linux环境中没有网络怎么下载python
Jul 07 Python
Python获取时间范围内日期列表和周列表的函数
Aug 05 Python
Pytorch通过保存为ONNX模型转TensorRT5的实现
May 25 Python
Python新手如何理解循环加载模块
May 29 Python
Python如何读写字节数据
Aug 05 Python
Jupyter Notebook添加代码自动补全功能的实现
Jan 07 Python
Python从MySQL数据库中面抽取试题,生成试卷
Jan 14 Python
python re模块和正则表达式
Mar 24 Python
pytorch实现线性回归以及多元回归
Apr 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
解析htaccess伪静态的规则
2013/06/18 PHP
PHP正则匹配反斜杠'\'和美元'$'的方法
2017/02/08 PHP
ThinkPHP+EasyUI之ComboTree中的会计科目树形菜单实现方法
2017/06/09 PHP
Alliance vs Liquid BO3 第二场2.13
2021/03/10 DOTA
js的一些常用方法小结
2011/06/29 Javascript
javascript是怎么继承的介绍
2012/01/05 Javascript
javascript实现信息增删改查的方法
2015/07/25 Javascript
JS实现的最简Table选项卡效果
2015/10/14 Javascript
jquery分页插件jquery.pagination.js实现无刷新分页
2016/04/01 Javascript
javascript实现粘贴qq截图功能(clipboardData)
2016/05/29 Javascript
AngularJS入门教程之Select(选择框)详解
2016/07/27 Javascript
canvas实现手机端用来上传用户头像的代码
2016/10/20 Javascript
webix+springmvc session超时跳转登录页面
2016/10/30 Javascript
学习 NodeJS 第八天:Socket 通讯实例
2016/12/21 NodeJs
JavaScript之map reduce_动力节点Java学院整理
2017/06/29 Javascript
javascript 关于赋值、浅拷贝、深拷贝的个人理解
2019/11/01 Javascript
[48:24]完美世界DOTA2联赛PWL S3 Forest vs INK ICE 第一场 12.09
2020/12/12 DOTA
python在命令行下使用google翻译(带语音)
2014/01/16 Python
Python fileinput模块使用实例
2015/05/28 Python
python开发简易版在线音乐播放器
2017/03/03 Python
Django自定义用户认证示例详解
2018/03/14 Python
Python中常用的内置方法
2019/01/28 Python
Python 根据日志级别打印不同颜色的日志的方法示例
2019/08/08 Python
解决python运行效率不高的问题
2020/07/20 Python
matplotlib基础绘图命令之imshow的使用
2020/08/13 Python
Python tempfile模块生成临时文件和临时目录
2020/09/30 Python
HTML+CSS3模拟心的跳动实例代码
2017/09/05 HTML / CSS
希尔顿酒店中国网站:Hilton中国
2017/03/11 全球购物
高中生操行评语
2014/04/25 职场文书
《梅花魂》教学反思
2014/04/30 职场文书
投标服务承诺书
2014/05/28 职场文书
优秀护士事迹材料
2014/12/25 职场文书
庆七一晚会主持词
2015/06/30 职场文书
《纸船和风筝》教学反思
2016/02/18 职场文书
入党转正申请书范文
2019/05/20 职场文书
手把手教你怎么用Python实现zip文件密码的破解
2021/05/27 Python