Я хочу разобрать PDF-файл с помощью pdfminer и табула
Я читаю этовопрос и использую этот код:
из pdfminer.pdfparser импортировать PDFParser из pdfminer.pdfdocument импортировать PDFDocument
import magic
from pyPdf import PdfFileWriter, PdfFileReader
import tabula
import numpy as np
filename = '/home/parser/test.pdf'
magic.from_file(filename,mime=True)
ifpdf = PdfFileReader(file(filename, "rb"))
pdf_info = ifpdf.getDocumentInfo()
nm = [ 'Info_1', 'Info_2','Info_3','Info_4']
df = tabula.read_pdf(filename,pages = "all",lattice = "all",pandas_options = {'header': None,'names':nm,'encoding':'utf-8'})
df.refenseigne.replace(to_replace=r"(M|C)\r",value = "",regex=True,inplace=True)
df.to_csv("test.csv",encoding = "utf-8")
Когда я выполняю свой код, я получаю эту ошибку
Traceback (most recent call last):
File "parse_pdf.py", line 16, in <module>
df = tabula.read_pdf(filename,pages = "all",lattice = "all",pandas_options = {'header': None,'names':nm,'encoding':'utf-8'})
File "/usr/local/lib/python2.7/dist-packages/tabula/wrapper.py", line 87, in read_pdf
output = subprocess.check_output(args)
File "/usr/lib/python2.7/subprocess.py", line 567, in check_output
process = Popen(stdout=PIPE, *popenargs, **kwargs)
File "/usr/lib/python2.7/subprocess.py", line 711, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1343, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory
что странно, так это то, что в строке 9 и 11 я могу найти файл, но в строке 16 у меня эта ошибка.
Я не прав или это проблема табула?
@chezou non это не работает с tabula-py. Я написал уже минимум кода!
Я пробовал работать без магии, и он работает почти нормально до read_pdf. Просто подтверждение, вы имеете в виду, что писать самый простой код вроде import tabula; tabula.read_pdf(filename)
тоже не работает? Или вы имеете в виду, что tabula-py не работает с pdfminer?
К вашему сведению, последний код в главной ветке вводит обработку файлов, таких как библиотеки объектов и путей. Надеюсь, в вашем случае все сработает.
@chezou часть, которая не работает, - tabula.read_pdf, она не может найти файл pdf, это было то же самое с моими коллегами,
Я не могу воспроизвести вашу проблему. gist.github.com/chezou/15b8a7a408808b3e9386f724c36653d9 Если я добавлю импортирующий pdfminer, он тоже будет работать. Я предполагаю, что ваш путь к файлу может включать пробел или специальный символ. Не могли бы вы попробовать последнюю версию? Он может обрабатывать такие файлы, как объект: github.com/chezou/tabula-py/blob/master/tests/…
Попробую последнюю версию и расскажу, последний раз пробовал 1 месяц назад, и по пути я не дурак :)
Обратите внимание, что последняя версия еще не опубликована на Pypi. Пожалуйста, установите через pip install git+https://github.com/chezou/tabula-py
Я столкнулся с такой же проблемой в Ubuntu.
Сначала проверьте версию JDK и JRE, установленных на вашем компьютере, запустив java --version и javac --version. У каждого должна быть версия выше 7.
Затем используйте pip3 для установки tabula.
он начал читать, но показал следующую ошибку
WARNING: Using fallback font 'LiberationSerif' for 'TimesNewRomanPSMT'
May 10, 2019 12:36:29 PM org.apache.pdfbox.pdmodel.font.PDTrueTypeFont
Работает только с tabula-py? Чтобы определить, в чем заключается основная причина, вы можете написать минимум кода, а затем добавить еще несколько сотрудников.