Я написал функцию, которая преобразует каждый PDF-файл из каталога в текст, и я хочу получить преобразованный текст из PDF-файлов в виде TXT-файлов.Я получаю
"TypeError: expected str, bytes or os.PathLike object, not tuple".
Может кто-нибудь, пожалуйста, помогите мне с этим.Прикрепленный код здесь:
import io
import os
import os.path
from pdfminer.converter import TextConverter
from pdfminer.pdfinterp import PDFPageInterpreter
from pdfminer.pdfinterp import PDFResourceManager
from pdfminer.pdfpage import PDFPage
def extract_text_from_pdf(pdf_path):
resource_manager = PDFResourceManager()
fake_file_handle = io.BytesIO()
converter = TextConverter(resource_manager, fake_file_handle)
page_interpreter = PDFPageInterpreter(resource_manager, converter)
with open(pdf_path, 'rb') as fh:
for page in PDFPage.get_pages(fh,
caching=True,
check_extractable=True):
page_interpreter.process_page(page)
text = fake_file_handle.getvalue()
# close open handles
converter.close()
fake_file_handle.close()
if text:
return text
def parse_pdf(filename):
"Parse a pdf into text"
content = io.getPDFContent(filename)
encoded = content.encode("utf-8")
## split of the pdf extension to add .txt instead.
(root, _) = os.path.splitext(filename)
text_file = open(root + ".txt", "w")
text_file.write(encoded)
text_file.close()
if __name__ == '__main__':
pdf_path = 'C:\\trainingdata_eng'
for file in os.walk(pdf_path):
extract_text_from_pdf(file)
for f in file:
parse_pdf(f)