Я пытаюсь преобразовать несколько PDF-файлов в текст. Я нашел способ сделать это с помощью пакетов Pdftotext, но после обновления Anaconda он просто продолжает портить файлы pdf, а не преобразовывать их в txt. Я наткнулся на следующий код и вставил два пути к каталогам по мере необходимости, но получил сообщение об ошибке, которое я не могу понять. Я имею в виду, папка правильная и в ней есть pdf файлы.
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage
import os
import sys, getopt
#converts pdf, returns its text content as a string
def convert(fname, pages=None):
if not pages:
pagenums = set()
else:
pagenums = set(pages)
output = io.StringIO()
manager = PDFResourceManager()
converter = TextConverter(manager, output, laparams=LAParams())
interpreter = PDFPageInterpreter(manager, converter)
infile = open(fname, 'rb')
for page in PDFPage.get_pages(infile, pagenums):
interpreter.process_page(page)
infile.close()
converter.close()
text = output.getvalue()
output.close
return text
******set paths accordingly:
pdfDir = "C:\\Users\\vitop\\OneDrive\\Desktop\\Final Project\\Test"
txtDir = "C:\\Users\\vitop\\OneDrive\\Desktop\\Final Project\\Test\\Indexed"******
#converts all pdfs in directory pdfDir, saves all resulting txt files to txtdir
def convertMultiple(pdfDir, txtDir):
if pdfDir == "": pdfDir = os.getcwd() + "\\" #if no pdfDir passed in
for pdf in os.listdir(pdfDir): #iterate through pdfs in pdf directory
fileExtension = pdf.split(".")[-1]
if fileExtension == "pdf":
pdfFilename = pdfDir + pdf
text = convert(pdfFilename) #get string of text content of pdf
textFilename = txtDir + pdf + ".txt"
textFile = open(textFilename, "w") #make text file
textFile.write(text) #write text to text file
convertMultiple(pdfDir, txtDir)
NameError Traceback (most recent call last)
<ipython-input-8-9a65b048f813> in <module>
45
46
---> 47 convertMultiple(pdfDir, txtDir)
<ipython-input-8-9a65b048f813> in convertMultiple(pdfDir, txtDir)
39 if fileExtension == "pdf":
40 pdfFilename = pdfDir + pdf
---> 41 text = convert(pdfFilename) #get string of text content of pdf
42 textFilename = txtDir + pdf + ".txt"
43 textFile = open(textFilename, "w") #make text file
<ipython-input-8-9a65b048f813> in convert(fname, pages)
14 pagenums = set(pages)
15
---> 16 output = io.StringIO()
17 manager = PDFResourceManager()
18 converter = TextConverter(manager, output, laparams=LAParams())
NameError: name 'io' is not defined ````
Any idea as to how to fix the issue?