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包的问题,重新导一遍也不能,配置文件检查过也不行,最后发现是类用错了。
要打印日志用的是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