Проблемы при применении функции к содержимому каждого элемента каталога в python?

#python #python-3.x #pdf #io #ipython-parallel

#python #python-3.x #PDF #io #ipython-параллельный

Вопрос:

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

Ввод:

 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 ?.

Комментарии:

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

2. спасибо за помощь @brianpck, я удалил ее, и у меня все еще есть то же исключение AttributeError: '_io.TextIOWrapper' object has no attribute 'decode' .

Ответ №1:

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

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

Комментарии:

1. Спасибо за помощь…. Есть ли более быстрый способ сделать это для крупномасштабных файлов ?.