首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用python-camelot从同一目录下的多个PDF中提取数据?

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

Stack Overflow用户
提问于 2020-03-12 04:28:39
回答 1查看 1.7K关注 0票数 0

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

代码语言:javascript
复制
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')
EN

回答 1

Stack Overflow用户

发布于 2020-03-12 16:34:45

正如注释中所建议的,问题在于os.listdir只返回文件名,而不返回完整路径。

您可以尝试这样做:

代码语言:javascript
复制
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)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60643993

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档