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数据统计的一些小技巧
Jul 21 Python
python爬虫实现教程转换成 PDF 电子书
Feb 19 Python
对Python中DataFrame选择某列值为XX的行实例详解
Jan 29 Python
python双端队列原理、实现与使用方法分析
Nov 27 Python
django实现将后台model对象转换成json对象并传递给前端jquery
Mar 16 Python
python except异常处理之后不退出,解决异常继续执行的实现
Apr 25 Python
Python3 socket即时通讯脚本实现代码实例(threading多线程)
Jun 01 Python
使用SimpleITK读取和保存NIfTI/DICOM文件实例
Jul 01 Python
如何使用pycharm连接Databricks的步骤详解
Sep 23 Python
详解Anaconda安装tensorflow报错问题解决方法
Nov 01 Python
用python查找统一局域网下ip对应的mac地址
Jan 13 Python
Python Django搭建文件下载服务器的实现
May 10 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
PHP实现的封装验证码类详解
2013/06/18 PHP
php约瑟夫问题解决关于处死犯人的算法
2015/03/23 PHP
PHP使用flock实现文件加锁的方法
2015/07/01 PHP
Yii操作数据库实现动态获取表名的方法
2016/03/29 PHP
PHPstorm启用自动换行的方法详解(IDE)
2020/09/17 PHP
一段非常简单的让图片自动切换js代码
2006/11/10 Javascript
用Javascript同时提交多个Web表单的方法
2009/12/26 Javascript
js处理json以及字符串的比较等常用操作
2013/09/08 Javascript
如何获取网站icon有哪些可行的方法
2014/06/05 Javascript
javascript继承的六大模式小结
2015/04/13 Javascript
js验证框架实现代码分享
2016/05/18 Javascript
详解js中的apply与call的用法
2016/07/30 Javascript
详解堆的javascript实现方法
2016/11/29 Javascript
用ES6的class模仿Vue写一个双向绑定的示例代码
2018/04/20 Javascript
Layui数据表格之单元格编辑方式
2019/10/26 Javascript
JS几个常用的函数和对象定义与用法示例
2020/01/15 Javascript
通过实例了解Render Props回调地狱解决方案
2020/11/04 Javascript
Python小进度条显示代码
2019/03/05 Python
Python如何使用队列方式实现多线程爬虫
2020/05/12 Python
Python celery原理及运行流程解析
2020/06/13 Python
Pycharm 2020.1 版配置优化的详细教程
2020/08/07 Python
详解用python -m http.server搭一个简易的本地局域网
2020/09/24 Python
浅析HTML5:'data-'属性的作用
2018/01/23 HTML / CSS
META-INF文件夹中的MANIFEST.MF的作用
2016/06/21 面试题
庆七一活动方案
2014/01/25 职场文书
高等教育学自荐书范文
2014/02/10 职场文书
竞选班长自荐书范文
2014/03/09 职场文书
服务质量承诺书
2014/03/27 职场文书
通知函的格式
2015/04/27 职场文书
2016年小学生教师节广播稿
2015/12/18 职场文书
外出考察学习心得体会
2016/01/18 职场文书
《当代神农氏》教学反思
2016/02/23 职场文书
创业计划书之青年旅馆
2019/09/23 职场文书
CSS3实现的3D隧道效果
2021/04/27 HTML / CSS
Vue实现下拉加载更多
2021/05/09 Vue.js
苹果可能正在打击不进行更新的 App
2022/04/24 数码科技