Как считать линию за линией в использовании файла PDF PyPdf?

У меня есть некоторый код для чтения из файла PDF. Существует ли способ считать линию за линией из файла PDF (не страницы) использование Pypdf, Python 2.6, в Windows?

Вот код для того, чтобы прочитать страницы PDF:

import pyPdf

def getPDFContent(path):
    content = ""
    num_pages = 10
    p = file(path, "rb")
    pdf = pyPdf.PdfFileReader(p)
    for i in range(0, num_pages):
        content += pdf.getPage(i).extractText() + "\n"
    content = " ".join(content.replace(u"\xa0", " ").strip().split())
    return content

Обновление:

Код вызова - это:

f= open('test.txt','w')
pdfl = getPDFContent("test.pdf").encode("ascii", "ignore")
f.write(pdfl)
f.close()
25
задан Ajean 15 July 2015 в 23:31
поделиться

1 ответ

Похоже, у вас есть большой кусок текстовых данных, которые вы хотите интерпретировать построчно.

Вы можете использовать класс StringIO, чтобы обернуть этот контент как доступный для поиска файловый объект:

>>> import StringIO
>>> content = 'big\nugly\ncontents\nof\nmultiple\npdf files'
>>> buf = StringIO.StringIO(content)
>>> buf.readline()
'big\n'
>>> buf.readline()
'ugly\n'
>>> buf.readline()
'contents\n'
>>> buf.readline()
'of\n'
>>> buf.readline()
'multiple\n'
>>> buf.readline()
'pdf files'
>>> buf.seek(0)
>>> buf.readline()
'big\n'

В вашем случае выполните:

from StringIO import StringIO

# Read each line of the PDF
pdfContent = StringIO(getPDFContent("test.pdf").encode("ascii", "ignore"))
for line in pdfContent:
    doSomething(line.strip())
11
ответ дан 28 November 2019 в 21:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: