如何从Tabula.Wrapper.Read_PDF()获取与大熊猫兼容的表,该表读取整个文档

时间:2019-07-10 13:50:15

标签: python pip wrapper tabula

我正在尝试阅读pdf文件以将表格数据转换为csv文件,我有一个pdf文档,其中包含一个表格,该表格从第1页延续到第2页。

虽然使用函数tabula.wrapper.pdf_read(),但如果我使用guess = True,则输出与熊猫兼容,但不会读取第1页上的所有数据,也不会读取第2页上的数据。或者,如果我使用guess = True = False,该代码将收集/输出第1页和第2页的所有数据,但不兼容熊猫。使用电子表格= True和nospreadsheet = False都不起作用

代码

import PyPDF2
import pandas as pd
from io import StringIO
import tabula
from tabula import wrapper
import os
import shutil
from io import StringIO

def pdf_read(pdf_path):
    pdf = PyPDF2.PdfFileReader(pdf_path)
    no_pages = pdf.getNumPages()
    data = wrapper.read_pdf(pdf_path, multiple_tables=True, pages="1-2", guess=False)
    print(data)
    x = data
    return(x)

def archive_pdf(current_path, name):
    x = len(name) + 4 
    new_path = current_path[:-x] +"Archive/" + name + ".pdf"
    shutil.move(current_path, new_path)

def pdf_page_read_test_v2(folder_path, name):
    pdf_path = folder_path + "/" + name + ".pdf"
    csv_path = folder_path + "/" + name + ".csv"
    data = pdf_read(pdf_path)
    data2 = pd.DataFrame(data)
    export_excel = data2.to_csv(csv_path, index = None, header=True)
    #archive_pdf(pdf_path, name)

输入到输出

以pdf示例输入:

**00|01|02|03|04**   
**01**|x1|y1|z1|w1  
**02**|a1|b1|c1|d1  
**03**|x2|y2|z2|w2  
**04**|a2|b2|c2|d2  
**05**|x3|y3|z3|w3  
**06**|a3|b3|c3|d3

输出(guess = true)示例:

**00|01|02|03|04**   
**01**|x1|y1|z1|w1  
**02**|a1|b1|c1|d1  
**03**|x2|y2|z2|w2  
**04**|a2|b2|c2|d2

输出(guess = false)示例:

00  01  02  03  04  01  x1  y1  z1  w1 02 a1  b1  c1  d1 03 x2  y2  z2  w2 04 a2  b2  c2  d2 05 x3  y3  z3  w3 06 a3  b3  c3  d3

0 个答案:

没有答案