Python 有很多pdf库,不过因为我没有接触过文本处理相关的内容,所以一直只是知道python可以处理pdf而没有去写过程序。而昨天听说朋友在复制pdf表格到excel中,所以想试下用python批量处理,于是找到了这个pdfplumber,发现非常好用,安利一下
github 地址:https://github.com/jsvine/pdfplumber
可以用pip安装,cmd输入:
pip install pdfplumber 安装好了以后测试一下,即读入名为‘1.pdf’ 的 pdf 并显示页数
import pdfplumber
Pdf=pdfplumber.open('1.pdf')
len(Pdf.pages) 接下来实现如下功能:给定文件夹下有多个pdf,每个pdf下有多个表格(也有文字),编写程序读入文件夹下所有pdf,将每个pdf里的每个表格写入同名xlsx的不同sheet里,并输出至命令行,代码如下:
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,命令行输出如下:
