今天朋友上班摸鱼被领导发现,一气之下给他1000个PDF文件让他把内容提取出来放到excel里,于是找我寻求帮助。
需求是要获取PDF图片里的文件名称,时间,检验编号,款号,这里就不放图了
安装
pip install pdfminer //扫描pdf
pip install pdfminer.six //不安装会报错
pip install openpyxl //excel模块wwww
通过pdfminer模块获取图片上的数据,得到的数据用正则表达式匹配一下,然后用openpyxl导出
from openpyxl import Workbook
from pdfminer import high_level
import re,os
workbook = Workbook()
worksheet = workbook.active
worksheet['A1'] = '文件名称'
worksheet['B1'] = '时间'
worksheet['C1'] = '检验编号'
worksheet['D1'] = '款号'
#pdf文件路径
#root:文件夹路径,dirs:文件夹下子目录名,files:文件夹下的文件
for root,dirs,files in os.walk('./22/'):
#遍历pdf文件
for f in files:
file_name = os.path.join(root,f)
if file_name.endswith('.pdf'):
#提取整个 pdf 文本信息
text = high_level.extract_text(file_name)
#提取 pdf文档中 "企业进本情况:" 后面的信息,利用正则进行匹配
time = r'(\d{4}-\d{1,2}-\d{1,2})'
qy_time = re.findall(time,text)
qy_wttc = re.findall('.*WTTC.*', text)
qy_num = re.findall('\d{9,10}', text)
qy_num_list = list(set(qy_num))
qy_num_str = ', '.join(qy_num_list)
row = (f, qy_time[0], qy_wttc[0], qy_num_str)
worksheet.append(row)
workbook.save('example.xlsx')
朋友用了直说好