2016-10-07 3 views
1

Я пытаюсь получить содержимое нескольких .pdf-файлов из каталога, чтобы преобразовать их в текст с помощью библиотеки tika, однако я считаю, что я не правильно читаю .pdf-файлы. Это то, что я пытался до сих пор:Проблемы при применении функции к содержимому каждого элемента каталога в python?

Вход:

for filename in sorted(glob.glob(os.path.join(input_directory, '*.pdf'))): 
    with open(filename,"rb") as f: 
     print(f) 
     text = parser.from_file(f) 

Выход:

<_io.BufferedReader name='/Users/user/Downloads/pdf-files/a_pdf_file.pdf'> 
AttributeError: '_io.BufferedReader' object has no attribute 'decode' 

Какой самый эффективный способ передвижения по содержимому файлов в Python ?.

+2

вы используете Python 3? Попробуйте удалить флаг «b». – brianpck

+0

спасибо за помощь @brianpck, я удалил ее, и у меня все еще есть одно и то же исключение. Объект AttributeError: '_io.TextIOWrapper' не имеет атрибута 'decode''. – tumbleweed

ответ

1

тика анализатор получает путь и открывает сам файл:

for filename in sorted(glob.glob(os.path.join(input_directory, '*.pdf'))): 
    parsed = parser.from_file(filename) 
    text = parsed['content'] 
+0

Спасибо за помощь .... Есть ли более быстрый способ сделать это для файлов большого масштаба ?. – tumbleweed