2015-09-19 2 views
19

Я использую Python 3.4 и вам нужно извлечь весь текст из PDF, а затем использовать его для обработки текста.Лучший инструмент для извлечения текста из PDF в Python 3.4

Все ответы, которые я видел, предлагают варианты для Python 2.7.

Мне нужно что-то в Python 3.4.

Бонсон

+3

Не знаете, почему голосующий голос. Как я уже упоминал, я проверил все доступные, а также на google. Единственное, что я нашел, которое можно использовать с Python 3.4, было в этой [детали xPDF] (http://stackoverflow.com/questions/18320932/looking-for-recommendation-on-how-to-convert-pdf-into- структурированный формат? lq = 1) все остальные версии 2.7. Я ничего не нашел на версии 3.4 Python. Просьба также прокомментировать, когда проголосовали. – Bonson

ответ

33

Вам необходимо установить модуль PyPDF2, чтобы иметь возможность работать с PDF-файлами в Python 3.4. PyPDF2 не может извлекать изображения, диаграммы или другие носители, но он может извлекать текст и возвращать его как строку Python. Чтобы установить его, запустите pip install PyPDF2 из командной строки. Это имя модуля чувствительно к регистру, поэтому обязательно введите «y» в нижнем регистре, а все остальные символы - в верхнем регистре.

>>> import PyPDF2 
>>> pdfFileObj = open('my_file.pdf','rb')  #'rb' for read binary mode 
>>> pdfReader = PyPDF2.PdfFileReader(pdfFileObj) 
>>> pdfReader.numPages 
56 
>>> pageObj = pdfReader.getPage(9)   #'9' is the page number 
>>> pageObj.extractText() 

Последний оператор возвращает весь текст, который доступен на странице 9 документа 'my_file.pdf'.

+0

Привет, Ritesh. Вы случайно знаете, что вы знакомы с этим вопросом. [Вопрос] (http://stackoverflow.com/questions/32773517/python-based-pdf-mining-and-table-text-processing). – Bonson

+2

Незначительная коррекция - подумайте, что shoudl будет цитатами для «rb» в команде open на строке два, а не только rb. – kyrenia

+2

Кроме того, страницы в pypdf2 ноль-индексируются, т. Е. 'GetPage (9)' получит вам страницу # 10. Номера страниц в исходном документе полностью игнорируются pypdf2. – nostradamus

0

pdfminer.six (https://github.com/pdfminer/pdfminer.six) также был рекомендован в другом месте и предназначен для поддержки Python 3. Я не могу лично ручаться за него, поскольку он не удался во время установки MacOS. (Для этого есть открытая проблема, и, похоже, это недавняя проблема, поэтому может быть быстрое исправление.)