Сохраните отдельные CSV-файлы, содержащие таблицы, используя Camelot.py без перезаписи - PullRequest
0 голосов
/ 28 января 2020

Я изо всех сил пытаюсь создать код, который может извлечь таблицу из PDF и сохранить ее в CSV-файл в al oop.

В моей папке около 250 файлов в формате PDF, каждый из которых содержит таблицу, которую я хотел бы извлечь и поместить в файл CSV. Я использую Camelot.py для извлечения таблицы, и программа отлично работает с отдельным файлом.

Я бы хотел, чтобы программа извлекла таблицу из pdf, а затем сохранила файл csv с тем же именем файла, что и pdf, содержащий таблицу. Я попытался сконструировать код (см. Ниже), который перебирает pdf.files, но я не могу сохранить выходные данные из каждого pdf.file в отдельные файлы csv.

Я не знаю, как указать в коде, что программа должна экспортировать таблицу в формате pdf в файл csv, имя которого совпадает с именем файла pdf в l oop в Camelot.

Я надеюсь, что кто-то может помочь с некоторыми советами о том, как действовать отсюда - заранее спасибо.

import camelot
import csv​
import pandas as pd​
import os ​
​
directoryPath = r"PATHFILE"​
os.chdir(directoryPath)​
folderLister = os.listdir(directoryPath)​
for folders, sub_folders, file in os.walk(directoryPath):​
    for name in file:​
        if name.endswith(".pdf"):​
            filename=os.path.join(folders,name)​
            print(filename)​
            print(name)​
            tables=camelot.read_pdf(filename, flavor ="stream")​
            tables = tables[0].df
            tables[0].to_csv(".csv) # I am unsure how to specifiy the program to save a individual csv file with name of the pdf.

1 Ответ

0 голосов
/ 28 января 2020

Вы можете просто использовать имя файла PDF, чтобы получить имя файла CSV:

csv_filename=filename.replace('.pdf','.csv')

tables[0].to_csv(csv_filename)
...