我正在尝试阅读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