首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用python中的tabulizer循环遍历pdf文件

用python中的tabulizer循环遍历pdf文件
EN

Stack Overflow用户
提问于 2017-06-09 18:20:03
回答 1查看 1.9K关注 0票数 2

我很难找到一段代码来工作。我想循环遍历一个文件夹中的pdf文件,提取表格包认为这些表是什么,将它们解压缩到一个dataframe中,并将所有表从一个特定的pdf写入一个csv文件。

我查看了this post (和其他几个),但是我仍然很难让它正常工作。脚本似乎循环遍历文件,提取一些表,但它似乎不迭代文件,而且我无法让它将所有的数据写入到csv文件中。脚本只是在csv中编写最后一个脚本。

这就是我到目前为止所拥有的。任何帮助,特别是,如何循环正确的文件,并将所有表从一个pdf写入一个csv文件。我被困住了..。

代码语言:javascript
复制
pdf_folder = 'C:\\PDF extract\\pdf\\'
csv_folder = 'C:\\PDF extract\\csv\\'  

    paths = [pdf_folder + fn for fn in os.listdir(pdf_folder) if fn.endswith('.pdf')]
    for path in paths:
        listdf = tabula.read_pdf(path, encoding = 'latin1', pages = 'all', nospreadsheet = True,multiple_tables=True)
        path = path.replace('pdf', 'csv')
        for df in listdf: (df.to_csv(path, index = False))  
EN

回答 1

Stack Overflow用户

发布于 2017-06-09 18:33:02

就像斯科特·亨特提到的那样,你没有使用CSV_folder

此外,我认为您正在覆盖创建的.csv文件:

for df in listdf: (df.to_csv(path, index = False))

对于For -循环的每次迭代,路径变量保持不变。

编辑:,您可能应该尝试这样做:

代码语言:javascript
复制
pdf_folder = 'C:\\PDF extract\\pdf\\'
paths = [pdf_folder + fn for fn in os.listdir(pdf_folder) if fn.endswith('.pdf')]

for path in paths:
    listdf = tabula.read_pdf(path, encoding = 'latin1', pages = 'all', nospreadsheet = True,multiple_tables=True)
    path = path.replace('pdf', 'csv')
    df_concat = pd.concat(listdf)
    df_concat.to_csv(path, index = False)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44464436

复制
相关文章

相似问题

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