pdfplumber 读取pdf
光电小白之奇妙历险
2021年07月18日 11:40

Python 有很多pdf库,不过因为我没有接触过文本处理相关的内容,所以一直只是知道python可以处理pdf而没有去写过程序。而昨天听说朋友在复制pdf表格到excel中,所以想试下用python批量处理,于是找到了这个pdfplumber,发现非常好用,安利一下

github 地址:https://github.com/jsvine/pdfplumber

可以用pip安装,cmd输入:

代码块
Python
自动换行
复制代码
pip install pdfplumber
复制成功

安装好了以后测试一下,即读入名为‘1.pdf’ 的 pdf 并显示页数

代码块
Python
自动换行
复制代码
import pdfplumber
Pdf=pdfplumber.open('1.pdf')
len(Pdf.pages)
复制成功

接下来实现如下功能:给定文件夹下有多个pdf,每个pdf下有多个表格(也有文字),编写程序读入文件夹下所有pdf,将每个pdf里的每个表格写入同名xlsx的不同sheet里,并输出至命令行,代码如下:

代码块
Python
自动换行
复制代码
import pdfplumber
import pandas as pd
import os

file_dir = "C:/Users/Lenovo/Desktop/0717_test"
files=os.listdir(file_dir)

for file in files:
    temp=file.split('.')
    if temp[1]=='pdf':
        f_name=temp[0]
        Pdf=pdfplumber.open(file) 
        print(file)
        with pd.ExcelWriter(f_name+'.xlsx') as writer: 
            page_num=0
            table_num=0
            for page in Pdf.pages:
                page_num+=1
                print('page',page_num)
                for table in page.extract_tables():
                    print(table)
                    data=pd.DataFrame(table)
                    table_num+=1
                    data.to_excel(writer,sheet_name=str(table_num))
复制成功

文件夹下我放了三个pdf,命令行输出如下: