pdf文件提取表格数据,写入excel或csv文件
昨天试了pdftoHtml、pdfMiner都不是特别理想,要么就是执行太慢,要么就是提取表格数据散乱,不好处理;pdfplumber使用了一下,提取出的都是空数据,最后采用tabula.
安装 pip install tabula
tabula方便的一点时,提取出的数据不需要转化处理,可以直接使用它,他提取的数据就是一个dataFrame列表数据,可直接使用pandas处理,或直接存入excel或csv.
效果代码如下:
# -*- conding: utf-8 -*-import osimport tabulapath1 = r'D:\TFtest\zfb'fileList = os.listdir(path1)for file in fileList: if not file.endswith('.pdf'): # 剔除非pdf文件 continue file = os.path.join(path1, file) tableList = tabula.read_pdf(file, encoding='utf-8', pages='all') if len(tableList) < 2: # 转化结果小于两个表 continue print(tableList) 第一个表 = tableList[0] 第二个表 = tableList[1].fillna('') 第二个表['支出'] = 第二个表['支出'].str.replace('-', '0') 第二个表['收入'] = 第二个表['收入'].str.replace('-', '0') 第二个表.to_excel(file.replace('pdf', 'xlsx'), index=False) 第二个表.to_csv(file.replace('pdf', 'csv'), sep='|', index=False)
数据处理结果: