使用Python在文件夹结构中的文档中查找关键字

使用Python在文件夹结构中的文档中查找关键字,python,excel,parsing,Python,Excel,Parsing,我想知道是否有人知道如何在文档中查找关键字,然后将这些关键字导出到excel文档中 例如,我在文件夹a>文件夹B中有一个名为“test”的文档。我想进入该文件夹,找到名为“test”的文档,打开该文件,找到关键字“test”,然后将“test”导出到excel文档中 我问的原因是有数千个文件夹需要这样做。我看过其他解决方案,他们建议使用pdfminer,但我不知道如何在多个文件夹/子文件夹中运行该解决方案,并将关键字导出到excel文档中 这就是我目前所拥有的。它能够将PDF转换为文本,然后从文

我想知道是否有人知道如何在文档中查找关键字,然后将这些关键字导出到excel文档中

例如,我在文件夹a>文件夹B中有一个名为“test”的文档。我想进入该文件夹,找到名为“test”的文档,打开该文件,找到关键字“test”,然后将“test”导出到excel文档中

我问的原因是有数千个文件夹需要这样做。我看过其他解决方案,他们建议使用pdfminer,但我不知道如何在多个文件夹/子文件夹中运行该解决方案,并将关键字导出到excel文档中

这就是我目前所拥有的。它能够将PDF转换为文本,然后从文本中查找关键字。不确定如何将此数据导出到excel文件/列中。谢谢

from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage
from cStringIO import StringIO
import xlsxwriter

# Create a workbook and add a worksheet.
workbook = xlsxwriter.Workbook('Stafford_Capital.xlsx')
worksheet = workbook.add_worksheet()

def convert_pdf_to_txt(path):
    rsrcmgr = PDFResourceManager()
    retstr = StringIO()
    codec = 'utf-8'
    laparams = LAParams()
    device = TextConverter(rsrcmgr, retstr, codec=codec, laparams=laparams)
    fp = file(path, 'rb')
    interpreter = PDFPageInterpreter(rsrcmgr, device)
    password = ""
    maxpages = 0
    caching = True
    pagenos=set()
    fstr = ''
    for page in PDFPage.get_pages(fp, pagenos, maxpages=maxpages,    password=password,caching=caching, check_extractable=True):
        interpreter.process_page(page)

        str = retstr.getvalue()
        fstr += str

    fp.close()
    device.close()
    retstr.close()
    return fstr

print convert_pdf_to_txt("test.pdf")

string = convert_pdf_to_txt("test.pdf")
lines = list(filter(bool,string.split('\n')))
custData = {}
for i in range(len(lines)):
    if 'Lead:' in lines[i]:
        custData['Name'] = lines[i+2]
    elif 'Date:Date:Date:Date:' in lines[i]:
        custData['Fund Manager'] = lines[i+2]
    elif 'Priority:' in lines[i]:
        custData['Industry'] = lines[i+2]
        custData['Date'] = lines[i+1]
        custData['Deal Size']= lines [i+3]
    elif 'DEAL QUALIFYING MEMORANDUM' in lines[i]:
        custData['Owner'] = lines[i+2]
    elif 'Fund Manager' in lines[i]:
        custData['Investment Type'] = lines [i+2]
print custData

row = 0
col = 0

# Iterate over the data and write it out row by row.
for item, descrip in custData.iteritems():
    worksheet.write(row, col,     item)
    worksheet.write(row+1, col, descrip)
    col += 1

workbook.close()

是的,我知道怎么做。张贴你的代码,并指出哪一部分给你带来了麻烦。(请注意,理解pdf文件的内容可能很困难,如果文件实际上是扫描文件而不是从基于文本的程序中打印出来的,则可能不可能)。您好,我编辑了我的文章,以包含我的代码。我不知道如何将关键字导出到excel文件中,并在数百个PDF文件中重复它。谢谢是的,我知道怎么做。张贴你的代码,并指出哪一部分给你带来了麻烦。(请注意,理解pdf文件的内容可能很困难,如果文件实际上是扫描文件而不是从基于文本的程序中打印出来的,则可能不可能)。您好,我编辑了我的文章,以包含我的代码。我不知道如何将关键字导出到excel文件中,并在数百个PDF文件中重复它。谢谢