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 相关文章推荐
MySQLdb ImportError: libmysqlclient.so.18解决方法
Aug 21 Python
用Python中的字典来处理索引统计的方法
May 05 Python
深入解析Python中的lambda表达式的用法
Aug 28 Python
Python装饰器实现几类验证功能做法实例
May 18 Python
Python数据结构之顺序表的实现代码示例
Nov 15 Python
Python实现的双色球生成功能示例
Dec 18 Python
Python使用matplotlib绘图无法显示中文问题的解决方法
Mar 14 Python
解决Python一行输出不显示的问题
Dec 03 Python
对python中dict和json的区别详解
Dec 18 Python
Python选择网卡发包及接收数据包
Apr 04 Python
python 中的列表生成式、生成器表达式、模块导入
Jun 19 Python
在pyCharm中下载第三方库的方法
Apr 18 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
VML绘图板②脚本--VMLgraph.js、XMLtool.js
2006/10/09 PHP
建立文件交换功能的脚本(二)
2006/10/09 PHP
用sql命令修改数据表中的一个字段为非空(not null)的语句
2010/06/04 PHP
写php分页时出现的Fatal error的解决方法
2011/04/18 PHP
redis 队列操作的例子(php)
2012/04/12 PHP
使用PHP强制下载PDF文件示例
2014/01/17 PHP
php使用curl检测网页是否被百度收录的示例分享
2014/01/31 PHP
PHP基于MySQL数据库实现对象持久层的方法
2015/06/17 PHP
浅谈PHP中JSON数据操作
2015/07/01 PHP
php+jquery+html实现点击不刷新加载更多的实例代码
2016/08/12 PHP
PHP实现路由映射到指定控制器
2016/08/13 PHP
magento后台无法登录解决办法的两种方法
2016/12/09 PHP
Yii2处理密码加密及验证的方法
2019/05/12 PHP
通用JS事件写法实现代码
2009/01/07 Javascript
fancybox modal的完美解决(右上的X)
2012/10/30 Javascript
JavaScript获取Url里的参数
2014/12/18 Javascript
jQuery数据缓存用法分析
2015/02/20 Javascript
浅析Ajax语法
2016/12/05 Javascript
从零学习node.js之详解异步控制工具async(八)
2017/02/27 Javascript
VUE实现一个分页组件的示例
2017/09/13 Javascript
详解Webpack+Babel+React开发环境的搭建的方法步骤
2018/01/09 Javascript
微信小程序实现日期格式化和倒计时
2020/11/01 Javascript
分享15个最受欢迎的Python开源框架
2014/07/13 Python
Python中字符串的处理技巧分享
2016/09/17 Python
Python二叉树定义与遍历方法实例分析
2018/05/25 Python
Python实现查找二叉搜索树第k大的节点功能示例
2019/01/24 Python
Python timer定时器两种常用方法解析
2020/01/20 Python
ubuntu16.04升级Python3.5到Python3.7的方法步骤
2020/08/20 Python
配置管理计划的主要内容有哪些
2014/06/20 面试题
解除合同协议书
2014/04/17 职场文书
2014年五四青年节活动策划书
2014/04/22 职场文书
工作推荐信范文
2014/05/10 职场文书
四风问题个人剖析材料
2014/10/07 职场文书
计算机实训报告范文
2014/11/05 职场文书
宣传委员竞选稿
2015/11/19 职场文书
纯html+css实现奥运五环的示例代码
2021/08/02 HTML / CSS