【发布时间】:2022-01-09 19:25:00
【问题描述】:
我正在尝试从文件夹中的所有 PDF 文件中提取以下信息,PDF 文件是 CV 的:工作项目的电子邮件地址、名字、姓氏。
我已经成功地使用此代码提取了电子邮件地址:
from io import StringIO
from pdfminer3.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer3.converter import TextConverter
from pdfminer3.layout import LAParams
from pdfminer3.pdfpage import PDFPage
import subprocess
from subprocess import call
import os
import re
working_directory = './folder'
file_list = [] # define file_list to save all dxf files
email_list = {} # define file_list to save all dxf files
for subdir, dirs, files in os.walk(working_directory):
for file in files:
if file.endswith('.pdf'):
file_list.append(file)
for input_file in file_list:
pagenums = set()
output = StringIO()
manager = PDFResourceManager()
converter = TextConverter(manager, output, laparams=LAParams())
interpreter = PDFPageInterpreter(manager, converter)
infile = open('./folder/' + input_file, 'rb')
for page in PDFPage.get_pages(infile, pagenums):
interpreter.process_page(page)
infile.close()
converter.close()
text = output.getvalue()
output.close()
match = re.search(r'[\w\.-]+@[a-z0-9\.-]+', text)
try:
email = match.group(0)
except AttributeError:
email = match
if email is None:
pass
else:
email_list.update({input_file: email})
print(email_list[input_file])
email_list
但是在提取名字和姓氏时遇到问题,我们将不胜感激!
【问题讨论】:
-
我认为最好指定您要处理的数据类型。
-
感谢您的反馈,已添加!
-
如果您认为所有 PDF 都是以相同的方式创建的,那您就错了。如果您正在处理由许多应用程序创建的 PDF,则确实如此。我可以向您保证,我可以找到您无法处理的文件,因此您永远找不到完整的解决方案。
标签: python pdf text-extraction pdfminer