使用 Python 自动将 PDF 数据录入 Excel
今天我将向您展示如何自动将PDF数据导入Excel。这可以为每天进行此类操作的每个人节省大量时间。
让我们直接来看代码吧!
首先我们需要导入依赖项
from tika import parser
import pprint
from collections import defaultdict
import re
import pandas as pd
之后,我们需要定义 PrettyPrinter 函数,获取 PDF 文件的内容并将其转换为列表:
pp = pprint.PrettyPrinter(indent=3)
parsedPDF = parser.from_file("final-test.pdf")
content = parsedPDF['content']
contentlist = content.split('\n')
删除拆分后生成的列表中的空字符串。
contentlist = list(filter(lambda a: a != '', contentlist))
创建一个迭代器和其他标志,我们将在算法中使用它们。该迭代器用于遍历 PDF 的每一行内容:
iterateContent = iter(contentlist)
抓取数据的字典占位符
data = defaultdict(dict)
我们的计数器用来统计我们获得了多少块积木。
cntr = 0
指示我们当前位于特定数据块的哪一行。
line = 1
该算法将使用标志 cntr 和 line 来判断我们是在新区块还是现有区块中。
while True:
try:
string = next(iterateContent)
except StopIteration:
break
if re.match('^[A-Z\s]+$', string):
cntr += 1
data[cntr]['Name'] = string
line = 2
print('matched')
elif line == 2:
data[cntr]['Address'] = string
line += 1
elif line == 3:
data[cntr]['Website'] = string
line += 1
print("Total data:", len(data.keys()))
将数据设置到数据框中
df = pd.DataFrame(data.values())
df.index += 1
print(df)
将数据框写入 Excel。
writer = pd.ExcelWriter("dataframe.xlsx", engine='xlsxwriter')
df.to_excel(writer, sheet_name='output', index=False)
writer.save()
我们的最终结果:
谢谢大家。
文章来源:https://dev.to/stokry/automate-data-entry-from-pdf-to-excel-with-python-1hm

