Проверьте, допустим ли Файл PDF (Python)

Посмотрите на сценарии запуска , там установлен размер кучи Java, похоже, что вы не устанавливаете это перед запуском рабочего Spark.

# Set SPARK_MEM if it isn't already set since we also use it for this process
SPARK_MEM=${SPARK_MEM:-512m}
export SPARK_MEM

# Set JAVA_OPTS to be able to load native libraries and to set heap size
JAVA_OPTS="$OUR_JAVA_OPTS"
JAVA_OPTS="$JAVA_OPTS -Djava.library.path=$SPARK_LIBRARY_PATH"
JAVA_OPTS="$JAVA_OPTS -Xms$SPARK_MEM -Xmx$SPARK_MEM"

Вы можете найти документацию для развертывания скриптов здесь .

17
задан theomega 17 February 2009 в 22:53
поделиться

4 ответа

Два обычно пользовались библиотеками PDF для Python:

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

С pyPdf это, вероятно, было бы столь же просто как выполнение:

from pyPdf import PdfFileReader
doc = PdfFileReader(file("upload.pdf", "rb"))

Это должно быть достаточно, но doc будет теперь иметь documentInfo() и numPages() методы, если Вы захотите сделать далее проверку.

, Поскольку Carl ответил, pdftotext является также хорошим решением и вероятно был бы быстрее на очень больших документах (особенно со многими перекрестными ссылками). Однако это могло бы быть немного медленнее на маленьком PDF из-за системы наверху разветвления нового процесса, и т.д.

12
ответ дан 30 November 2019 в 06:59
поделиться

В проекте, если мой я должен проверить на тип пантомимы некоторого загруженного файла. Я просто использую команду файла как это:

from subprocess import Popen, PIPE
filetype = Popen("/usr/bin/file -b --mime -", shell=True, stdout=PIPE, stdin=PIPE).communicate(file.read(1024))[0].strip()

Вы, конечно, могли бы хотеть переместить фактическую команду в некоторый конфигурационный файл, равно как и параметры командной строки варьируются среди операционных систем (например, Mac).

, Если просто необходимо знать, является ли это PDF или не и не должно обрабатывать его так или иначе, я думаю, что команда файла является более быстрым решением, чем lib. Выполнение его вручную, конечно, также возможно, но команда файла дает Вам, возможно, больше гибкости, если Вы хотите проверить на различные типы.

11
ответ дан 30 November 2019 в 06:59
поделиться

Если Вы находитесь на поле Linux или OS X, Вы могли бы использовать Pdftotext (часть Xpdf, найденного здесь ). При передаче не-PDF pdftotext он будет, конечно, лаять на Вас, и можно использовать commands.getstatusoutput, чтобы получить вывод и проанализировать его для этих предупреждений.

при поиске платформенно независимого решения Вы смогли использовать pyPdf.

Редактирование: Это не изящно, но похоже, что PdfFileReader pyPdf бросит IOError (22), при попытке загрузить не-PDF.

2
ответ дан 30 November 2019 в 06:59
поделиться

Допустимым Вы подразумеваете, что это может быть отображено средством просмотра PDF, или что текст может быть извлечен? Они - две совсем других вещи.

, Если Вы просто хотите проверить, что это действительно - файл PDF, который был загружен тогда, pyPDF решение или что-то подобное, будет работать.

, Если, однако, Вы хотите проверить, что текст может быть извлечен тогда, Вы нашли целый мир боли! Используя pdftotext было бы простое решение, которое будет работать в большинстве случаев, но это ни в коем случае не на 100% успешно. Мы нашли много примеров PDFs, который pdftotext не может извлечь из, но библиотеки Java, такие как iText, и PDFBox может.

0
ответ дан 30 November 2019 в 06:59
поделиться
Другие вопросы по тегам:

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