使用Python提取PDF里的内容导出到Excel

我有个全是 index 的 pdf 文件,要把里面 index 内容提取出来,然后存成 Excel 文件,同时还要删除原有的页码。

规则是:每行第一个逗号前的所有内容都保留,第一个逗号后的内容如果是英文单词也保留,如果是数字就删除,之后所有逗号后面的内容都删除。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import pdfplumber
import re
import pandas as pd

# 正则表达式匹配每行第一个逗号前的内容,以及可能的英文单词
pattern = re.compile(r"([^,]+),\s*(\b[a-zA-Z]+\b)?")

index_items = []

with pdfplumber.open("输入.pdf") as pdf:
# 遍历PDF的每一页
for page in pdf.pages:
# 提取当前页的文本
text = page.extract_text()
# 根据换行符分割文本以处理每一行
lines = text.split('\n')
for line in lines:
# 使用正则表达式找到每行的匹配项
match = pattern.search(line)
if match:
# 如果有第二个分组(英文单词),则保留这个单词
if match.group(2):
item = match.group(1).strip() + ', ' + match.group(2).strip()
else:
item = match.group(1).strip()
index_items.append(item)

df = pd.DataFrame(index_items, columns=["Index Item"])

df.to_excel("输出.xlsx", index=False)