微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

tabula 要求我在已安装上一个版本时更新 java

如何解决tabula 要求我在已安装上一个版本时更新 java

我已经多次测试我的代码,每次都运行良好,但现在由于某种原因它引发了一个奇怪的错误,我会马上解决。 我正在使用 tabula 读取一些 pdf 文件,这是出现错误代码

for it_page,page in enumerate(pages_id,start=0):
    print("page : ",page)
    tables = tabula.read_pdf(hermes_pdf_dir + "/" + pdf_name,pages = page)
    
    
    for i,table in enumerate(tables,start=1):
        print( "titre retenu : " + pages_id_titres[it_page][1] + f"_{i}.xlsx")
        table.to_excel(os.path.join(folder_name,pages_id_titres[it_page][1]  + " p" + str(page) + f"_{i}.xlsx"),index=False)

错误位于以“tables = tabula.read_pdf(...)”开头的行。

最重要的是,这里是完整的错误信息:

Traceback (most recent call last):
  File "get_pdfs_hermes.py",line 299,in <module>
    read_pdf_download_csv(pdf_name2)
  File "get_pdfs_hermes.py",line 199,in read_pdf_download_csv
    tables = tabula.read_pdf(hermes_pdf_dir + "/" + pdf_name,pages = page)
  File "C:\Users\virgi\Python\lib\site-packages\tabula\io.py",line 322,in read_pdf
    output = _run(java_options,kwargs,path,encoding)
  File "C:\Users\virgi\Python\lib\site-packages\tabula\io.py",line 80,in _run
    result = subprocess.run(
  File "C:\Users\virgi\Python\lib\subprocess.py",line 512,in run
    raise CalledProcessError(retcode,process.args,subprocess.CalledProcessError: Command '['java','-Dfile.encoding=UTF8','-jar','C:\\Users\\virgi\\Python\\lib\\site-packages\\tabula\\tabula-1.0.4-jar-with-dependencies.jar','--pages','104','--guess','--format','JSON','C:\\Users\\virgi\\Desktop\\virgile_stuff\\prog\\banking analyst\\financial_data/data/hermes_data/hermes_2014_rapportannuel_en.pdf']' returned non-zero exit status 1.

它讨论了 Java 依赖项(可能是因为 tabula 有 tabula-py 和 tabula-java ?)以及我发现的有关此类错误的最相关问题说应该更新 java,而我的计算机上有最新版本计算机。 对它可能是什么有任何想法吗?

解决方法

通过简单地对发生错误时处理的 pdf 文件进行例外处理,它似乎又可以正常工作了。我认为问题来自页面编码或类似内容。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?