Я довольно новичок в Python и пробую пакет PyPDF2 в первый раз.Я просто хочу просмотреть свой PDF-документ (66 страниц) и извлечь весь текст в DataFrame.
Я проследил за некоторыми сообщениями в блоге (http://echrislynch.com/2018/07/13/turning-a-pdf-into-a-pandas-dataframe/) и получил следующий код. В отличие от сообщения в блоге, меня сейчас не интересует очистка или преобразование данных, я просто хочу, чтобы страницы сохранялисьв фрейме данных.:
import PyPDF2
import os
import pandas as pd
# Open PDF as an object and read it into PyPDF2
pdfFileObj = open('MyReport.pdf', 'rb')
pdfReader = PyPDF2.PdfFileReader(pdfFileObj)
# loop through pages
pages=list()
for i in range(1, pdfReader.numPages):
pageObj = pdfReader.getPage(i)
page = pageObj.extractText()
page = page[0:]
pages.append(page[0:])
for i in range(1,len(page)):
pages=[page[2:] for page in pages]
# Create dataframe
page_df = pd.DataFrame([page])
# Concat with dbn_df
MyNewReport= pd.DataFrame([page])
page_df = page_df.iloc[0:]
MyNewReport= pd.concat([MyNewReport,page_df], axis=0,
ignore_index=True, sort=False)
Я столкнулся с ошибкой:
File "<ipython-input-78-729b84e346f9>", line 16, in <module>
page[i] = page[i][2:]
TypeError: 'str' object does not support item assignment
Итак, я знаю, что проблема связана с моим циклом, хотя, глядя на обозреватель переменных, мой фрейм данных содержиттекст с последней страницы моего pdf ... так что он зацикливается на чем-то!
Может кто-нибудь помочь или порекомендовать какое-нибудь дальнейшее чтение, чтобы понять ошибку и разрешение?