我对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最后一页中的文本...所以它正在循环遍历!
任何人都可以帮助或建议进一步阅读以了解错误和解决方法吗?