Как читать по строкам в 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() 

3 Solutions collect form web for “Как читать по строкам в pdf-файле с помощью PyPdf?”

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

Вы можете использовать класс 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()) 
 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 

Использование yield и PdfFileReader.pages может упростить вещи,

 from pyPdf import PdfFileReader def get_pdf_content_lines(pdf_file_path): with open(pdf_file_path) as f: pdf_reader = PdfFileReader(f) for page in pdf_reader.pages: for line in page.extractText().splitlines(): yield line for line in get_pdf_content_lines('/path/to/file.pdf'): print line 

Кроме того, некоторые могут google «python получить текст в формате pdf», вот как это сделать: (вот как я сюда попал)

 from pyPdf import PdfFileReader def get_pdf_content(pdf_file_path): with open(pdf_file_path) as f: pdf_reader = PdfFileReader(f) content = "\n".join(page.extractText().strip() for page in pdf_reader.pages) content = ' '.join(content.split()) return content print get_pdf_content('/path/to/file.pdf') 
  • Как извлечь текст из файла PDF в Python?
  • Создание сплющенного PDF-файла с помощью Python
  • Инструмент pypdf python
  • Извлечение текста с использованием PdfMiner и PyPDF2 Объединяет столбцы
  • Python PyPDF2 присоединяется к страницам
  • Разбор PDF без объекта Root с использованием PDFMiner
  • разделить pdf на основе контура
  • Объединение двух PDF-файлов
  •  
    Interesting Posts for Van-Lav

    Поиск индекса ближайшей точки в массивах numpy координат x и y

    Почему subprocess.Popen () с shell = True работает по-разному в Linux и Windows?

    LiveServerTestCase Django всегда сбой из-за конфликтующего адреса … Несмотря на отсутствие адреса

    trace python: включить только некоторые файлы

    Проблема оптимизации в Python

    Замените пустые строки значениями None / null в DataFrame

    Почему в Docs-функции Python включена запятая после скобки для необязательных аргументов?

    Boost Python Привет, мир, не работает в Python

    Разбивка командной строки Python (для «scrapy»)

    Можно ли изящно обновить существующий virtualenv?

    Создайте zip-файл непосредственно из массива numpy без файла-посредника

    Как поменять байтов 32-битовое целое в python?

    Как построить гистограмму в интерактивном режиме на основе значения виджета выпадающего списка в bokeh python?

    Векнизирующий код для вычисления (в квадрате) Отклонения Махаланоби

    Обработать новый символ строки «\ n» в базе данных Sqlite с помощью Python?

    Python - лучший язык программирования в мире.