python3用PyPDF2解析pdf文件,用正则匹配数据方式

作者:零度愿望 时间:2021-08-29 21:24:01 

我就废话不多说了,大家还是看代码吧!


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类

来源:https://blog.csdn.net/qq_42336573/article/details/83537812

标签:python3,PyPDF2,pdf,正则
0
投稿

猜你喜欢

  • 如何将python代码生成API接口

    2022-10-27 14:37:39
  • Python中列表(List) 的三种遍历(序号和值)方法小结

    2022-08-24 23:17:39
  • asp是什么格式 asp文件用什么打开

    2020-06-30 16:04:48
  • VSCode + WSL 2 + Ruby环境搭建图文详解

    2022-09-10 21:05:38
  • Sql Server2016 正式版安装程序图解教程

    2024-01-21 18:48:53
  • Django细致讲解多对多使用through自定义中间表方法

    2022-12-12 17:22:41
  • Python中转换角度为弧度的radians()方法

    2021-08-11 16:21:59
  • Python中3种内建数据结构:列表、元组和字典

    2022-12-20 03:46:04
  • Python+Django搭建自己的blog网站

    2022-02-24 16:32:45
  • MySQL 8忘记密码的最佳处理方式浅析

    2024-01-28 17:44:32
  • Python中SQLite数据库的使用

    2024-01-21 17:33:58
  • 详解使用 pyenv 管理多个版本 python 环境

    2023-11-01 03:40:05
  • Tornado实现多进程/多线程的HTTP服务详解

    2023-11-19 23:40:20
  • uni-app的基本使用教程

    2024-05-11 09:15:18
  • Python开发之快速搭建自动回复微信公众号功能

    2022-06-27 03:08:04
  • 基于h5py的使用及数据封装代码

    2021-10-22 08:45:39
  • php使用pthreads v3多线程实现抓取新浪新闻信息操作示例

    2023-10-12 19:21:46
  • MySQL加密和解密实例详解

    2024-01-16 01:57:38
  • MYSQL中怎样设列的默认值为Now()的介绍

    2008-11-01 16:54:00
  • Python实现的本地文件搜索功能示例【测试可用】

    2022-04-20 06:11:10
  • asp之家 网络编程 m.aspxhome.com