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
投稿

猜你喜欢

  • sqlserver 2000中创建用户的图文方法

    2012-03-26 18:26:39
  • python将txt文件读入为np.array的方法

    2023-07-23 08:10:29
  • python基础教程之分支、循环简单用法

    2021-05-30 08:51:48
  • 关于Python中*args和**kwargs的深入理解

    2021-04-07 17:45:06
  • Python ndarray 数组的变形详情

    2023-05-13 14:58:47
  • Microsoft SQL Server 2000安装问题集锦

    2008-12-10 14:26:00
  • 教你如何在CI框架中使用 .htaccess 隐藏url中index.php

    2023-11-14 11:49:57
  • sqlserver 查询数据库大小的方法

    2012-08-21 10:22:10
  • python中random随机函数详解

    2022-06-14 22:34:43
  • 防止Access 2000密码被破译的方法

    2008-11-20 16:48:00
  • 区分有单选框的选项和普通的选项

    2008-04-17 13:44:00
  • 在pandas中遍历DataFrame行的实现方法

    2022-02-16 13:13:26
  • asp导出CSV格式数据

    2008-12-24 21:25:00
  • python3 wechatpy微信支付的项目实践

    2023-08-29 14:13:36
  • python实现关闭第三方窗口的方法

    2023-11-01 17:25:09
  • Python爬虫之教你利用Scrapy爬取图片

    2022-11-02 10:35:02
  • python-pandas创建Series数据类型的操作

    2022-01-29 14:16:24
  • Django 创建/删除用户的示例代码

    2022-09-30 08:59:29
  • Python中的Decorator装饰器的使用示例

    2023-07-02 10:37:44
  • Python中22个万用公式的小结

    2022-12-15 21:06:38
  • asp之家 网络编程 m.aspxhome.com