【发布时间】:2018-09-12 06:26:54
【问题描述】:
我是基本级别的 python 用户,我正在尝试创建一个程序,在我使用的特定单词之前和之后(比如之前的 50 个单词和之后的 50 个单词)给出文本。到目前为止,我设法创建了一个程序,它给出了 PDF 的哪个页面被提及。我怎样才能将这额外的 100 个单词写入 CVS?
import PyPDF2
import re
import os
...
for pdfName in pdffiles:
pdfFull = pdfFolder + pdfName
pdfFileObj = open(pdfFull, mode='rb')
pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
number_of_pages = pdfReader.numPages
pages_text = []
words_start_pos = {}
words = {}
csvFolder = newpath
csvName = pdfName.replace('pdf', 'csv')
csvFull = csvFolder + csvName
with open(csvFull, 'w') as f:
f.write('{0},{1},{2}\n'.format("Sheet Number", "Search Word", "File Name"))
for word in searchwords:
for page in range(number_of_pages):
pages_text.append(pdfReader.getPage(page).extractText())
words_start_pos[page] = [dwg.start() for dwg in re.finditer(word, pages_text[page].lower())]
words[page] = [pages_text[page][value:value + len(word)] for value in words_start_pos[page]]
for page in words:
for i in range(0, len(words[page])):
if str(words[page][i]) != 'nan':
f.write('{0},{1},{2}\n'.format(page + 1, words[page][i], pdfFull))
【问题讨论】: