我是靠谱客的博主 美满寒风,最近开发中收集的这篇文章主要介绍PDF信息批量提取至Excel,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在学院做助管时,某老师布置了任务:将1000+个PDF文件的指定内容整理到一个Excel中。为了防止在逐个打开复制粘贴的过程中猝死,尝试编写代码简化此问题。实现的功能主要是将每个PDF的信息分别提取到Excel中的每一行。

需要的模块比较少。

import os
import pdfplumber #解析pdf文件,尤其带有表格的文件
from openpyxl import Workbook #读写Excel的文件

提取PDF信息的函数。

def parse(pdf):
targets = [] #保存结果,
for page in pdf.pages:
words = page.extract_words(x_tolerance=5)
for word in words:
targets.append(word['text'])
return targets
#print(targets)

导出至Excel的函数。

def save(targets, out_path, number, sheet_name='targets'):
ws.title = sheet_name
ws._current_row=number
ws.append(targets)
print(ws)
#ws.append(list(targets.values()))
wb.save(out_path)

PDF遍历函数。

def pdfFilesPath(path):
'''
path: 目录文件夹地址
返回值:列表,pdf文件全路径
'''
filePaths = [] # 存储目录下的所有文件名,含路径
for root,dirs,files in os.walk(path):
for file in files:
filePaths.append(os.path.join(root,file))
return filePaths

主函数。

# 主函数入口
if __name__ == "__main__":
i = 0
path = 'pdf地址'
pdfpath = pdfFilesPath(path)
wb = Workbook()
ws = wb.active
while i < pdf数量:
out_path = 'excel输出地址/文件名.xlsx'
pdf = pdfplumber.open(pdfpath[i])
number = i
targets = parse(pdf)
save(targets, out_path, number)
i += 1
print('运行结束!')

完整代码:

import os
import pdfplumber #解析pdf文件,尤其带有表格的文件
from openpyxl import Workbook #读写Excel的文件
def parse(pdf):
targets = [] #保存结果,
for page in pdf.pages:
words = page.extract_words(x_tolerance=5)
for word in words:
targets.append(word['text'])
return targets
#print(targets)
# 保存
def save(targets, out_path, number, sheet_name='targets'):
wb = Workbook()
ws = wb.active
ws.title = sheet_name
ws._current_row=number
ws.append(targets)
print(ws)
#ws.append(list(targets.values()))
wb.save(out_path)
def pdfFilesPath(path):
'''
path: 目录文件夹地址
返回值:列表,pdf文件全路径
'''
filePaths = [] # 存储目录下的所有文件名,含路径
for root,dirs,files in os.walk(path):
for file in files:
filePaths.append(os.path.join(root,file))
return filePaths
# 主函数入口
if __name__ == "__main__":
i = 0
path = 'pdf地址'
pdfpath = pdfFilesPath(path)
while i < pdf数量:
out_path = 'excel输出地址/文件名.xlsx'
pdf = pdfplumber.open(pdfpath[i])
number = i
targets = parse(pdf)
save(targets, out_path, number)
i += 1
print('运行结束!')

最后

以上就是美满寒风为你收集整理的PDF信息批量提取至Excel的全部内容,希望文章能够帮你解决PDF信息批量提取至Excel所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(35)

评论列表共有 0 条评论

立即
投稿
返回
顶部