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 17 Python
Python中查看文件名和文件路径
Mar 31 Python
Python切片工具pillow用法示例
Mar 30 Python
Python选择网卡发包及接收数据包
Apr 04 Python
Python和Java的语法对比分析语法简洁上python的确完美胜出
May 10 Python
Django REST framework 分页的实现代码
Jun 19 Python
python3实现微型的web服务器
Sep 03 Python
Python字符串、列表、元组、字典、集合的补充实例详解
Dec 20 Python
python_array[0][0]与array[0,0]的区别详解
Feb 18 Python
对python中arange()和linspace()的区别说明
May 03 Python
微软开源最强Python自动化神器Playwright(不用写一行代码)
Jan 05 Python
Python包管理工具pip的15 个使用小技巧
May 17 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
PHPMailer 中文使用说明小结
2010/01/22 PHP
PHP学习笔记之一
2011/01/17 PHP
php设计模式 Bridge (桥接模式)
2011/06/26 PHP
php 利用socket发送HTTP请求(GET,POST)
2015/08/24 PHP
php抽奖概率算法(刮刮卡,大转盘)
2020/04/17 PHP
PDO的安全处理与事物处理方法
2016/10/31 PHP
如何用javascript控制上传文件的大小
2006/10/26 Javascript
asp.net下使用jquery 的ajax+WebService+json 实现无刷新取后台值的实现代码
2010/09/19 Javascript
JavaScript高级程序设计 阅读笔记(十八) js跨平台的事件
2012/08/14 Javascript
JQuery操作tr和td内容的方法实例
2013/03/06 Javascript
仿新浪微博登陆邮箱提示效果的js代码
2013/08/02 Javascript
JSON 数字排序多字段排序介绍
2013/09/18 Javascript
thinkphp中常用的系统常量和系统变量
2014/03/05 Javascript
浅谈JSON.parse()和JSON.stringify()
2015/07/14 Javascript
jQuery事件处理的特征(事件命名机制)
2016/08/23 Javascript
jQuery中map函数的两种方式
2017/04/07 jQuery
JS组件系列之MVVM组件构建自己的Vue组件
2017/04/28 Javascript
AngularJS自定义指令详解(有分页插件代码)
2017/06/12 Javascript
ReactJs实现树形结构的数据显示的组件的示例
2017/08/18 Javascript
使用JS和canvas实现gif动图的停止和播放代码
2017/09/01 Javascript
vue移动端UI框架实现QQ侧边菜单组件
2018/03/09 Javascript
Vue.js中该如何自己维护路由跳转记录
2019/05/19 Javascript
JS中作用域以及变量范围分析
2020/07/18 Javascript
vue prop传值类型检验方式
2020/07/30 Javascript
利用Python破解斗地主残局详解
2017/06/30 Python
Python走楼梯问题解决方法示例
2018/07/25 Python
Python实现的爬取豆瓣电影信息功能案例
2019/09/15 Python
Python中pyecharts安装及安装失败的解决方法
2020/02/18 Python
python3发送request请求及查看返回结果实例
2020/04/30 Python
香港礼品网站:GiftU eshop
2017/09/01 全球购物
个人自我鉴定范文
2013/10/04 职场文书
中文专业毕业生自荐信
2014/05/24 职场文书
民主生活会发言材料
2014/10/20 职场文书
关于实现中国梦的心得体会
2016/01/05 职场文书
python 定义函数 返回值只取其中一个的实现
2021/05/21 Python
mysql查询结果实现多列拼接查询
2022/04/03 MySQL