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迭代用法实例教程
Sep 08 Python
用Python的pandas框架操作Excel文件中的数据教程
Mar 31 Python
对python中数组的del,remove,pop区别详解
Nov 07 Python
Pythony运维入门之Socket网络编程详解
Apr 15 Python
Django项目中实现使用qq第三方登录功能
Aug 13 Python
100行Python代码实现每天不同时间段定时给女友发消息
Sep 27 Python
django 解决model中类写不到数据库中,数据库无此字段的问题
May 20 Python
套娃式文件夹如何通过Python批量处理
Aug 23 Python
celery在python爬虫中定时操作实例讲解
Nov 27 Python
Python创建文件夹与文件的快捷方法
Dec 08 Python
详解python使用金山词霸的翻译功能(调试工具断点的使用)
Jan 07 Python
Python Pandas读取Excel日期数据的异常处理方法
Feb 28 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
使用YUI+Ant 实现JS CSS压缩
2014/09/02 PHP
PHP中模拟链表和链表的基本操作示例
2016/02/27 PHP
ThinkPHP中order()使用方法详解
2016/04/19 PHP
THinkPHP获取客户端IP与IP地址查询的方法
2016/11/14 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
2018/06/13 PHP
php从数据库中获取数据用ajax传送到前台的方法
2018/08/20 PHP
读jQuery之六 缓存数据功能介绍
2011/06/21 Javascript
jquery实现带复选框的表格行选中删除时高亮显示
2013/08/01 Javascript
JS创建自定义表格具体实现
2014/02/11 Javascript
javascript学习笔记--数字格式类型
2014/05/22 Javascript
node.js中的querystring.unescape方法使用说明
2014/12/10 Javascript
详细总结Javascript中的焦点管理
2016/09/17 Javascript
JavaScript实现HTML5游戏断线自动重连的方法
2017/09/18 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【圆形情况】
2018/12/13 Javascript
Vue组件系列开发之模态框
2019/04/18 Javascript
JS实现星星海特效
2019/12/24 Javascript
解决Vue router-link绑定事件不生效的问题
2020/07/22 Javascript
使用JavaScript实现贪吃蛇游戏
2020/09/29 Javascript
Python抓取Discuz!用户名脚本代码
2013/12/30 Python
python打开url并按指定块读取网页内容的方法
2015/04/29 Python
python获取指定路径下所有指定后缀文件的方法
2015/05/26 Python
Python实现快速排序和插入排序算法及自定义排序的示例
2016/02/16 Python
Python修改文件往指定行插入内容的实例
2019/01/30 Python
python中eval与int的区别浅析
2019/08/11 Python
浅谈Pytorch中的torch.gather函数的含义
2019/08/18 Python
基于python的itchat库实现微信聊天机器人(推荐)
2019/10/29 Python
keras模型可视化,层可视化及kernel可视化实例
2020/01/24 Python
Python selenium爬虫实现定时任务过程解析
2020/06/08 Python
Python爬虫实例之2021猫眼票房字体加密反爬策略(粗略版)
2021/02/22 Python
CSS3区域模块region相关编写示例
2015/08/28 HTML / CSS
Araks官网:纽约内衣品牌
2020/10/15 全球购物
房屋出租协议书
2014/04/10 职场文书
钱塘江大潮导游词
2015/02/03 职场文书
换届选举主持词
2015/07/03 职场文书
2019年大学推荐信
2019/06/24 职场文书
教你使用Ubuntu搭建DNS服务器
2022/09/23 Servers