Как извлечь данные из нескольких PDF-файлов в одном каталоге, используя python -camelot? - PullRequest
0 голосов
/ 11 марта 2020

Я пытаюсь извлечь данные из нескольких таблиц в несколько PDF и сохранить их в формате CSV. Я провел исследование и обнаружил, что python -camelot - хороший инструмент для извлечения. Я пытался, и это прекрасно работает на одном PDF. Тем не менее, у меня более 50 PDF-файлов в том же формате, поэтому я решил перебрать все файлы, используя For l oop, но это не сработало, и я получаю сообщение об ошибке, файлы не найдены в каталоге. не могли бы вы помочь. Вот код:

import tkinter 
import camelot
import os

directory = 'C:\\Users\\Alr\\Desktop\\test\\'
files = [ filename for filename in os.listdir(directory)]
for i in range (len(files)):
    tables = camelot.read_pdf(files[i], pages='5,6,7')
    tables.export(files[i], f='csv', compress=True) # json, excel, html, sqlite
    tables.to_csv(files[i]+'.csv')

1 Ответ

0 голосов
/ 12 марта 2020

Как указано в комментариях, проблема в том, что os.listdir возвращает только имена файлов, а не полные пути.

Вы можете попробовать это:

import tkinter 
import camelot
import glob

directory = 'C:\\Users\\Alr\\Desktop\\test\\*.pdf'
files = [filename for filename in glob.glob(directory)]

for pdf_filepath in files:
    csv_filepath=pdf_filepath.replace('.pdf','.csv')
    tables = camelot.read_pdf(pdf_filepath, pages='5,6,7')

    # the following lines seem to be duplicate
    tables.export(csv_filepath, f='csv', compress=True) # json, excel, html, sqlite
    tables.to_csv(csv_filepath)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...