Я создал сайт документов на Plone, с которого можно загружать файлы. Я видел, что plone сохраняет их в файловой системе в виде большого двоичного объекта, теперь мне нужно провести их через скрипт на python, который будет обрабатывать PDF файлы, загруженные с помощью OCR. У кого-нибудь есть идеи как это сделать? Спасибо
Не уверен, как извлечь PDF файлы из BLOB-хранилища или, если это вообще возможно, но вы можете извлечь их с работающего Plone-сайта.
Если слабое распознавание типа файла по окончанию имени файла достаточно хорошо, вы можете выполнить этот метод (проверено через вызов браузера):
import os
def exportPdfFiles(context, export_path):
"""
Write all items which are of portal_type 'File'
and whose ids end with '.pdf' to export_path.
"""
search_results = context.portal_catalog(portal_type='File', Language='all')
for search_result in search_results:
if search_result.id.endswith('.pdf'):
file_path = export_path + search_result.getPath()
file_content = search_result.getObject().data
parent_path = '/'.join(file_path.split('/')[:-1])
if not os.path.exists(parent_path):
os.makedirs(parent_path)
with open(file_path, 'w') as fil:
fil.write(file_content)
print 'Wrote ' + file_path
Более новые Plone-версии предоставляют MIMEtype-info об объектах, что позволяет фильтровать результаты поиска для файлов типа PDF.
В этом примере структура папок сайта Plone хранится в каталоге экспорта. Если вы хотите, чтобы они были плоскими в одном каталоге, необходима проверка на наличие дублирующихся имен файлов.