我正在尝试从多个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')发布于 2020-03-12 16:34:45
正如注释中所建议的,问题在于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)https://stackoverflow.com/questions/60643993
复制相似问题