我正在尝试从PDF中提取文本页面并将文本存储为列表中的每页列表,如
[['This', 'is', 'one', 'page'] , ['I', 'am', 'page', 'TWO'] , ['Three', 'that\'s', 'me'] , ['and', 'so', 'on'] , ['...']]
我使用了PyPDF2 package:
中的extractText()
方法
#!/usr/bin/python
from PyPDF2 import PdfFileReader
# open PDF
myPDFpath = 'test.pdf'
myPDF = PdfFileReader(open(myPDFpath, "rb"))
# initialize page list
pagelist = []
# grab all text from PDF per page and put into page list
for page in range(0, myPDF.getNumPages()):
currentPage = myPDF.getPage(page)
myText = currentPage.extractText()
thispage = myText.split()
pagelist.append(thispage)
以上代码在技术上有效,但该方法不可靠(根据自己的doc),抛出输出如:
[u'!"#$"%#&\'"()"', u'"!"#$"%#&\'"()"', u'"!"#$"%#&\'"()"', u'"!"#$"%#&\'"()"', u'"!"#$"%#&\'"()"', u'"!"#$"%#&\'"()"', u'"!"#$"%#&\'"()"', u'"!"#$"%#&\'"()"', u'"!"#$"%#&\'"()"',
所以我想知道是否还有其他可靠的方法来解析Python中的PDF文件中的文本?
答案 0 :(得分:0)
嗯,你可以试试这个:
import PyPDF2
pages = []
pdf_file = <Enter your file path>
read_pdf = PyPDF2.PdfFileReader(pdf_file)
number_of_pages = read_pdf.getNumPages()
for page_number in range(number_of_pages): # use xrange in Py2
page = read_pdf.getPage(page_number).extractText().split(" ") # Extract page wise text then split based on spaces as required by you
pages.append(page)