问题标签 [tabula]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 使用 Tabula 从 PDF 中提取表格
我遇到了一个很棒的图书馆,叫做 Tabula,它几乎成功了。不幸的是,第一页上有很多我不想让 Tabula 提取的无用区域。根据文档,您可以指定要从中提取的页面区域。但是,无用区域仅在我的 PDF 文件的第一页上,因此,对于所有后续页面,Tabula 将错过顶部。有没有办法指定区域条件仅适用于 PDF 的第一页?
python - 无法在香草 Ubuntu 服务器上设置 Python 环境
我编写了一个简单的 Python 服务器,其中包括 Java 库 Tabula 的 tabula-py 包装器。在本地测试后,使用相应的客户端并确定一切正常,我尝试在普通的 Ubuntu Server 16.04 VBox 实例上运行它。当我遇到运行时错误(下同)时,我尝试使用 Python CLI 进行简单测试:
服务器从命令行启动,使用的shebang是:
我尝试导出 pip freeze 要求并在 VBox 服务器上安装相同的库,只是为了在安装许多这些库时出现相同的子进程错误。我猜这是 Python 环境问题,因为 Ubuntu Server 没有预装 Python,所以我可能忽略了安装重要的核心库或设置环境变量。我错过了什么?
python - 如何重命名 Pandas 中的未命名列?
我有一个带有表格的 pdf,并试图将该表格放入 Pandas。众所周知,提取 pdf 表格很难正确,但我发现 tabula 效果最好。这是我见过的最好的,尽管仍然不完美。我有这个 pdf 表:
请注意表格的标题,以及它们有时如何运行到下一行,并且通常不是很好。我正在面对真正的问题,因为我看到的所有解决方案都首先需要一种更好的方法来创建数据框。这个数据框是我能得到的最好的,但如果你知道如何从表格中获得更好的数据框,请告诉我。
我使用 tabula-py,并运行以下代码:
有很多选项,我不知道所有选项,但这似乎是我能做的最好的,在摆弄选项之后。得到的 DF 是这样的:
如果你看,你会看到标题在前三行中被分割了。我该如何解决?是否有任何聪明、优雅的解决方案来为每列取三个名称中的“最佳”,并将其设为列名称?
谢谢!!
python - tabula-py - “没有名为请求的模块”
我正在使用代码(https://github.com/chezou/tabula-py#example)制作“scripts.py”,当我启动“python scripts.py”时出现此错误:
操作系统:Ubuntu 16.04
爪哇:1.8.0_121
python - Python:错误 - tabula-py 无法读取 PDF
我无法执行 tabula-py 的read_pdf
功能。
它似乎正在产生以下错误消息:
带回溯:
关于为什么会这样的任何见解?它以前工作正常。
node.js - nodejs:批量执行映射功能来管理内存
语境
我正在使用 Tabula 解析 pdf 表格。我有很多 pdf,这些 pdf 有不同数量的页面,从几页到几百页不等。我正在尝试将我的 node.js 程序指向一个输入文件夹,并让它为我提供由我确定的区域定义的所有表的 csvs。
由于内存限制,我不能只遍历文件、遍历页面并让 tabula 异步解析每个表。所以我四处寻找如何做批量任务并async.mapLimit
不断提出。似乎它应该满足我的要求,但无论出于何种原因,我只是让它完成第一批大小limit
,然后它“完成”而不去后续批次并执行相同的任务。
代码
问题
在运行结束时,当我知道有几个有超过 100 页时,我只得到每个 pdf 的 5 页。似乎每个 pdf 文件都在处理中,但无论出于何种原因,我每个只得到 5 页。
这是我第一次使用其中一些库。我究竟做错了什么?提前致谢!
我的想法
会不会是我在做 a async.mapLimit
inside of a async.mapLimit
?的console.log(pageNumber)
内部电话确实显示我只得到 1 到 5 parseTablesInPDF
...async.mapLimit
我是在默默地失败吗?我怎么知道?
更新
我已经意识到我要求节点应用程序做的都是在一个进程中运行。我一直在尝试提出一个工作示例,我可以将这个问题更新为涉及分叉child_process
es,但我不确定如何控制child_process
一次运行多少并发 es。该send({...})
方法似乎是异步的,我不确定如何“等待”它。
如何控制节点中分叉子进程的并发?
python - Python tabula-py 不会读取 pdf
我正在尝试从一系列 PDF 文件中提取表格,但无法使 tabula-py 工作。我一直在尝试通过 Windows 操作系统上的 Jupyter Notebook 使用它。不幸的是,我也一样
'FileNotFoundError'</p>
每次我尝试使用 read_PDF()。
从到目前为止我在网上找到的内容来看,该错误似乎是在尝试运行 Tabula java 文件时产生的。我已经正确安装了java。
对此的任何帮助将不胜感激。
这是我试图运行的代码:
错误信息:
python - 在python中使用制表器循环pdf文件
我很难让一段代码工作。我想遍历文件夹中的 pdf 文件,提取 tabula 包认为的表格是什么,将它们提取到数据框中,然后将特定 pdf 中的所有表格写入一个 csv 文件。
我查看了这篇文章(以及其他几篇文章),但仍然无法使其正常工作。似乎脚本循环遍历文件,提取一些表,但它似乎没有遍历文件,我无法让它将所有数据帧写入 csv 文件。该脚本只是在 csv 中写入最后一个。
这就是我到目前为止所拥有的。任何帮助将不胜感激,特别是如何正确循环文件并将所有表格从一个 pdf 写入一个 csv 文件。我很困...
java - 使用 tabula-py 时出现“找不到 Java”
大家,我在 python 中使用 tabula-py 从 pdf 中提取表格。我使用了以下代码。
但是,我收到如下粘贴的错误消息,其中告诉我“没有这样的文件或目录:'java'”。我已经在以下文件夹中安装了 Java
谁能帮我解决这个问题?
谢谢。