【问题标题】:Extracting PDF table, Python3, tabula-py提取PDF表格,Python3,tabula-py
【发布时间】:2017-04-19 18:15:50
【问题描述】:

尝试使用 Python 3.6 从 PDF 中提取表格。似乎 [pyPDF2][1] 失败并且 [pdfminer][2] 与 3.x 不兼容。我为 [tabula][3] 找到了一个 python 包装器。

import tabula
file_list = get_pdf_list()

text = tabula.read_pdf(file_list[0])
print(text)

tabula.convert_into(file_list[0], "test.json", ouput_format="json")

read_pdf 和 convert_into 都返回空结果。 PyPDF2 也有同样的问题。运行时没有错误

我开始认为这与我的 pdf 格式有关。谁有更多经验?我正在尝试从 pdf 中的表中提取值。

【问题讨论】:

  • 在哪里可以获得 Python 3.7?还是你的意思是 2.7?
  • 3.6.. 我的错。已编辑。
  • 您似乎已在问题文本的底部删除了有关您要指定的链接的信息:[pyPDF2][1] ... [pdfminer][2]。如果你愿意,你也可以修复它。
  • 你可以在这里试试here with PDFminer/PDFminer-six for Python 3.6。并不完美,但值得一试。
  • 你可以试试camelot-py.readthedocs.io

标签: python python-3.x pdf


【解决方案1】:

希望你已经得到了答案!但仍然是我的代码!我想说的是,tabula 是优秀的 PDF 表格提取器之一。我在哪里遇到了很多关于 camelot 的问题。

安装最新的表格包

pip install tabula-py

代码是!

import os
from tabula import wrapper
os.path.abspath("E:/Documents/myPy/")
tables = wrapper.read_pdf("MyPDF.pdf",multiple_tables=True,pages='all')

i=1
for table in tables:
    table.to_excel('output'+str(i)+'.xlsx',index=False)
    print(i)
    i=i+1

试试这个!

【讨论】:

    【解决方案2】:

    提取PDF表格,Python3,tabula-py 使用 Tabula-py

    from tabula import convert_into
    table_file = r"pdf_path"
    o1_csv = r"file12.csv"
    o2_csv = r"file13.csv"
    df = convert_into(table_file, o1_csv, output_format='csv', lattice=False, stream=True, pages=1)
    df1 = convert_into(table_file, o2_csv, output_format='csv', lattice=True, stream=False, pages=1)
    print(df)
    print(df1)
    Output: print(df) : None
            print(df1): None
    

    但是 csv 文件不是空的

    可能是表格没有边界,这与 tabula-py 具有其功能的普通文本不同

    1. stream 如果为 true,则根据文本排列搜索表格的行和列
    2. lattice 如果为 true,则搜索定义表格行和列的适当边界

    【讨论】:

    • @K J 没有人专门使用流或格方法,那么库采用默认值。这对我有用,它可以帮助其他人。这可能是一个死问题,但我在工作时确实搜索过相同的问题,因此一旦我收到解决方案就发布它以帮助其他人。好吧,那不是应用它的库“差异”
    • 好吧,如果你不指定它是格子还是流@K J,它会给出相同的结果。仅仅因为我们从未使用选项正确使用库并不意味着库将无法工作。这一切都是关于之前阅读每个库文档说明它不起作用
    • @K J 你的信息可能是错误的,请先阅读 cmets
    • @KJ 提供了图片,这样你会更好地理解
    猜你喜欢
    • 1970-01-01
    • 2023-03-29
    • 2023-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多