如何使用python camelot从同一目录中的多个PDF中提取数据



我正试图从多个pdf格式的多个表中提取数据,并将其保存为csv格式。我做了研究,发现python camelot是一个很好的提取工具。我试过了,它在一个pdf上运行得非常好。然而,我有50多个相同格式的PDF,所以我决定使用For循环迭代所有文件,但它不起作用,我得到一个错误,在目录中找不到文件。你能帮忙吗。这是代码:

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')

正如注释中所建议的,问题是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)

最新更新