首页 > 编程语言 >python - pdf转成excel文件

python - pdf转成excel文件

时间:2023-10-06 19:11:08浏览次数:38  
标签:python excel install import pdf path csv

初次尝试用python将pdf转换为excel表格,如有错误欢迎指出,

需要用到的库如下:

pip install pdfminer3k

pip install tabula-py

pip install openpyxl

如果是pip3,则:

pip3 install pdfminer3k
pip3 install tabula-py

pip3 install openpyxl


通过终端即可安装

新建一个IDLE文件,源码如下:

 

from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter, PDFPageAggregator
from pdfminer.layout import LAParams, LTTextBox, LTTextLine, LTText, LTFigure, LTImage, LTChar, LTTextBoxHorizontal
from pdfminer.pdfpage import PDFPage
from io import StringIO

 

def extract_table(pdf_path):
rsrcmgr = PDFResourceManager()
outfp = StringIO()
codec = 'utf-8'
laparams = LAParams()
device = PDFPageAggregator(rsrcmgr, laparams=laparams)
interpreter = PDFPageInterpreter(rsrcmgr, device)
with open(pdf_path, 'rb') as fp:
for page in PDFPage.get_pages(fp):
interpreter.process_page(page)
layout = device.get_result()
for lt_obj in layout:
if isinstance(lt_obj, LTTextBoxHorizontal):
outfp.write(lt_obj.get_text())
outfp.write('\n')
return outfp.getvalue()

 

#()内为文件路径需要替换为真实路径信息

table = extract_table('/Users/1.pdf')
print(table)

 


import tabula

 

def convert_to_csv(pdf_path, csv_path):
tabula.convert_into(pdf_path, csv_path, output_format="csv", pages="all")

#()内为文件路径需要替换为真实路径信息

 

convert_to_csv("/Users/1.pdf", "/Users/1.csv")

 

import pandas as pd

#()内为文件路径需要替换为真实路径信息

 

df = pd.read_csv("/Users/1.csv")
print(df)

 

from openpyxl import Workbook
from openpyxl.utils.dataframe import dataframe_to_rows

 

def convert_to_excel(csv_path, excel_path):
df = pd.read_csv(csv_path)
book= Workbook()
sheet = book.active
for r in dataframe_to_rows(df, index=False, header=True):
sheet.append(r)
book.save(excel_path)

#()内为文件路径需要替换为真实路径信息

 

convert_to_excel("/Users/1.csv", "/Users/1.xlsx")

 

执行后即可在指定路径下看到输出的文件

 

 


 

标签:python,excel,install,import,pdf,path,csv
From: https://www.cnblogs.com/fannyLi/p/17744858.html

相关文章

  • Python异步编程并发比较之循环、进程、线程、协程
    服务端现在有一个api接口http://127.0.0.1:18081/hello批量请求该接口,该接口中有一个5s的阻塞。使用循环,多进程,多线程,协程等四种方式,一共请求10次,比较总的请求耗时。importtimefromflaskimportFlaskapp=Flask(__name__)@app.route('/hello')defhello_world():......
  • Python分享之路径与文件 (os.path包, glob包)
    os.path包os.path包主要是处理路径字符串,比如说'/home/vamei/doc/file.txt',提取出有用信息。importos.pathpath='/home/vamei/doc/file.txt'print(os.path.basename(path))#查询路径中包含的文件名print(os.path.dirname(path))#查询路径中包含的目录info=......
  • # yyds干货盘点 # 盘点一个Python自动化办公实战实现数据汇总填充(方法四)
    大家好,我是皮皮。一、前言前几天在Python最强王者交流群【哎呦喂 是豆子~】问了一个Python自动化办公的问题,一起来看看吧。下图是他的原始数据和他想得到的目标数据,如下所示:需要在标黄的两行里边进行相关操作。二、实现过程之前的文章中【莫生气】使用了openpyxl进行了实现,的确可......
  • python11
    3.3字符串的公共功能1.相加:字符串+字符串v1="吉林省"+"长春市"print(v1)2.相乘:字符串*整数data="alex"*3print(data)3.长度data="吉林省长春市"value=len(data)print(value)4.获取字符串中的字符,索引message="吉林省长春市"#012......
  • Python使用socket的UDP协议实现FTP文件服务
    简介本示例主要是用Python的socket,使用UDP协议实现一个FTP服务端、FTP客户端,用来实现文件的传输。在公司内网下,可以不适用U盘的情况下,纯粹使用网络,来实现文件服务器的搭建,进而实现文件的网络传输。同时用来理解Python的socket使用。服务端运行起来后,会把服务器上面的指......
  • 为研究不同宽度,厚度,重量,车间温度,冷却方式下,物料温度随时间呈指数衰减的模型函数,
    为研究不同宽度,厚度,重量,车间温度,冷却方式下,物料温度随时间呈指数衰减的模型函数,请使用python按照下面的表格形式,生成模拟数据,数据预处理,选择模型,划分数据集,训练模型,调整超参数,预测和评估,并绘图谢谢您的反馈。我可以尝试改进模拟生成的df数据,以让它更加真实。......
  • Python缩进
    Python缩进在Python中,代码块没有显式的开始/结束或大括号来标记代码块的开始和结束。相反,代码块是通过缩进定义的。我们考虑一个极其简化的Python子集,其只有两种类型的语句:简单语句和$For$语句。简单语句(Simplestatements )仅占一行,每行一个。$For$语句(Forstatem......
  • python-pip 更新方法
    最近在学习python,发现需要用的插件总是更新不上去,多次查询后记录以下问题1、pip版本要与phtyon版本对应,可通过终端确认python的版本python-V2、python3的pip在查询时应该输入的:python3-mpip-V3、通过终端更新pip方法一:python3-mpipinstall–upgradepip  ===该方......
  • 不同宽度,厚度,重量,车间温度,冷却方式下,物料温度随时间衰减,请使用python机器学习,
    生成模拟数据、数据预处理、选择模型、划分数据集、训练模型、调整超参数、预测和评估以及绘图是一个相对复杂的流程。下面是一个示例流程,涵盖了这些步骤:importnumpyasnpimportpandasaspdimportmatplotlib.pyplotaspltfromsklearn.model_selectionimporttrain_test_......
  • 不同宽度,厚度,重量,车间温度,冷却方式下,物料温度随时间呈指数衰减,,请使用python机
    生成模拟数据、数据预处理、选择模型、划分数据集、训练模型、调整超参数、预测和评估以及绘制图表是一个完整的机器学习项目流程。下面是一个用Python完成这些步骤的基本示例。请注意,这只是一个简单的示例,实际项目中可能需要更复杂的数据和模型选择。首先,确保你已经安装了必要的Py......