当前位置: 首页 > 知识库问答 >
问题:

python tabula-py不会读pdf

何乐
2023-03-14

我试图从一系列PDF文件中提取表格,但无法使表格工作。我一直试图通过Windows操作系统上的Jupyter笔记本使用它。不幸的是,我也得到了同样的结果

“FileNotFoundError”

每次我尝试使用read_PDF()。

从我到目前为止在网上发现的情况来看,这个错误似乎是在试图运行Tabula java文件时产生的。我已经正确安装了java。

在此方面的任何帮助都将不胜感激。

这是我试图运行的代码:

    from tabula import read_pdf
    df = read_pdf("https://github.com/tabulapdf/tabula-java/raw/master/src/test/resources/technology/tabula/arabic.pdf")

错误消息:

    FileNotFoundError                         Traceback (most recent call last)
    <ipython-input-78-956ad4697ff7> in <module>()
          1 from tabula import read_pdf
    ----> 2 df = read_pdf("https://github.com/tabulapdf/tabula-java/raw/master/src/test/resources/technology/tabula/arabic.pdf")

    C:\Program Files\Anaconda3\lib\site-packages\tabula\wrapper.py in read_pdf(input_path, **kwargs)
         64 
         65     try:
    ---> 66         output = subprocess.check_output(args)
         67     finally:
         68         if is_url:

    C:\Program Files\Anaconda3\lib\subprocess.py in check_output(timeout, *popenargs, **kwargs)
        624 
        625     return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
    --> 626                **kwargs).stdout
        627 
        628 

    C:\Program Files\Anaconda3\lib\subprocess.py in run(input, timeout, check, *popenargs, **kwargs)
        691         kwargs['stdin'] = PIPE
        692 
    --> 693     with Popen(*popenargs, **kwargs) as process:
        694         try:
        695             stdout, stderr = process.communicate(input, timeout=timeout)

    C:\Program Files\Anaconda3\lib\subprocess.py in __init__(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags, restore_signals, start_new_session, pass_fds)
        945                                 c2pread, c2pwrite,
        946                                 errread, errwrite,
    --> 947                                 restore_signals, start_new_session)
        948         except:
        949             # Cleanup if the child failed starting.

    C:\Program Files\Anaconda3\lib\subprocess.py in _execute_child(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, unused_restore_signals, unused_start_new_session)
       1222                                          env,
       1223                                          cwd,
    -> 1224                                          startupinfo)
       1225             finally:
       1226                 # Child is launched. Close the parent's copy of those pipe

共有3个答案

公孙和怡
2023-03-14

要确保Windows可以找到Java编译器和解释器:选择开始-

[在Windows XP中,选择开始-

前置C:\Program Files\Java\jdk1。6.0_27\bin;指向路径变量的开头。单击“确定”三次。

范楚
2023-03-14

我在没有为java设置路径环境的情况下重现了这个问题。exe。确保为Java设置路径。另见:https://www.java.com/en/download/help/path.xml

郑曜灿
2023-03-14

我这样做,运行代码

>

  • pip安装tabula-py

    conda安装表格

    祝你好运。。

  •  类似资料:
    • 我目前正在为我的不和谐服务器开发一个discord.py重写(1.3.3)机器人。目前,我正试图让机器人在语音频道中播放音乐。根据discord.py留档,您将使用函数channel.connect()连接到语音通道,该通道将返回VoiceClient对象。 然而,我从未从通道中获得VoiceClient对象。连接()。机器人确实加入了我的频道,但它似乎陷入了一个无限循环。在“wait chann

    • 我想发送消息,如果作者有角色,但如果我尝试此代码不工作(角色的id是正确的)。

    • Py++ is an object-oriented framework for creating a code generator for the Boost.Python library.

    • py

      py 是为 Erlang 生态系统准备的分布式 Python。该项目有两个主要特性: Python 的简单封装接口,封装了 ErlPort 调用,可方便地进行: 进行模块级调用 获取模块级常量 实例化对象 调用对象方法 获取对象属性 使用方便的包装器调用内置函数和运算符 在分布式环境中运行 Python 的方法,充分利用 Erlang 的优势,包括容错、可伸缩、并发、实时等特性

    • 上面的代码正在运行。 我没有得到任何错误,但我也希望机器人显示他们是afk的原因,当他们提到。有人能帮忙吗?

    • 我正在使用下面的web.py代码,尝试通过本地geth节点在Rinkeby测试网上发送1 ETH的交易。我可以看到在实时本地以太网节点日志流中提交的交易,但它们似乎永远不会广播到网络(我永远不会在rinkeby.io块浏览器上看到它们)。我每次都手动设置nonce,但我读到如果使用了以前的nonce,并且它没有广播,它可能会被卡住?作为答案的一部分,如果能解释nonce的目的/用法,那就太好了。