【使用python获取pdf所需数据】
新手也能修改使用的pdf文件读取代码
- 一:本文思路
- 1 代码
- 2 内容
- 二:正文
- 1 安装pdfplumber库
- 2 将pdf文件放入指定文件夹
- 3 代码部分
一:本文思路
1 代码
2 内容
采用代码、数据、结果结合的方式按操作顺序给出
二:正文
1 安装pdfplumber库
2 将pdf文件放入指定文件夹
此文件夹只用于存储pdf文件
3 代码部分
tips:运行前需要修改文件存放与读取地址。此代码会生成pdf读取的初始数据进行存储,再读取初始数据进行数据处理。
import pandas as pd
import warnings
import pdfplumber
import os
warnings.filterwarnings("ignore")#自动导出文件夹对应的PDF数据
dir_path = r'C:\Users\24655\Desktop\python知识管理\python脚本和算法\脚本\read_pdf\数据'
path = []
for i,j,k in os.walk(dir_path):for m in range(len(k)):path.append(str(i)+'\\'+str(k[m]))for l in range(len(k)):with pdfplumber.open(path[l]) as pdf:#输出pdf隐藏信息#print(pdf.metadata)# 第一页pdfplumber.Page实例first_page = pdf.pages[0]# second_page = pdf.pages[1]text = first_page.extract_text()with open(r'C:\Users\24655\Desktop\python知识管理\python脚本和算法\脚本\read_pdf\数据\{}.csv'.format(k[l]),'w') as file:file.write(str(text)+'/n')df_final = pd.DataFrame()for im in range(len(k)):#PDF导出的数据清洗df = pd.read_csv(r'C:\Users\24655\Desktop\python知识管理\python脚本和算法\脚本\read_pdf\数据\{}.csv'.format(k[im]),encoding = 'gbk')# print(df)df = df.loc[2:11]# print(df)len_df_loc = df.loc[3].str.split(' ')[0] #解决pdf读取数据时,4s在与不在同一行导致的删除列错误# print(len(len_df_loc))if len(len_df_loc) <= 2:df.loc[3] = df.loc[3]+' '+df.loc[4]df.drop(index = [4,5,6,9],inplace = True)else:df.loc[3] = df.loc[3]+' '+df.loc[4]df.drop(index = [4,5,8],inplace = True)# print(df)df = df.admin.reset_index()df = df['admin'].str.split(' ',expand = True) #以表格形式切割数据# print(df)#清洗完的数据精准获取data_cell = []data_cell.append(k[im]) #地图名称split_df_1 = df.loc[3] #解决pdf读取数据时,4s在与不在同一行导致的删除列错误if len(split_df_1) <= 14:data_case_type = df.loc[3,2]data_cell.append(data_case_type) #项目类型else:data_case_type = df.loc[3,3]data_cell.append(data_case_type) #项目类型data_efficiency_of_the_car = df.loc[1,0]data_cell.append(data_efficiency_of_the_car) #车效data_efficiency_of_the_warehouse = df.loc[1,1]data_cell.append(data_efficiency_of_the_warehouse) #整仓效率data_Processing_time_for_a_single_container = df.loc[1,2]data_cell.append(data_Processing_time_for_a_single_container) #单箱处理时间data_the_number_of_car = df.loc[5,0]data_cell.append(data_the_number_of_car) #车数data_the_number_of_mc = df.loc[3,11]data_cell.append(data_the_number_of_mc) #任务数data_Workstation_type_of_inbound = df.loc[5,6]data_cell.append(data_Workstation_type_of_inbound) #出库工作站类型data_Workstation_number_of_inbound = df.loc[5,5]data_cell.append(data_Workstation_number_of_inbound) #出库工作站数量data_Conveyor_line = df.loc[5,9]data_cell.append(data_Conveyor_line) #是否有输送线# 解决pdf识别问题导致报告编码与任务名称粘在一起的问题split_df_1 = df.loc[3] #解决pdf读取数据时,4s在与不在同一行导致的删除列错误if len(split_df_1) <= 14:data_Pick_up_time_of_outbound = df.loc[3,8]data_cell.append(data_Pick_up_time_of_outbound) #出库拣货时间(h)data_total_time_of_Perform_a_task = df.loc[3,12]data_cell.append(data_total_time_of_Perform_a_task) #执行任务总时长(h)data_Times_the_speed = df.loc[3,3]data_cell.append(data_Times_the_speed) #倍速else:data_Pick_up_time_of_outbound = df.loc[3,9]data_cell.append(data_Pick_up_time_of_outbound) #出库拣货时间(h)data_total_time_of_Perform_a_task = df.loc[3,13]data_cell.append(data_total_time_of_Perform_a_task) #执行任务总时长(h)data_Times_the_speed = df.loc[3,4]data_cell.append(data_Times_the_speed) #倍速data_cell = pd.Series(data_cell)data_cell = pd.DataFrame(data_cell.T)data_cell = data_cell.Tdata_cell.columns = ['地图', '项目类型', '车效(箱//车)', '整仓效率(箱/)', '单箱处理耗时', '车数', '任务数', '出库工作站类型','出库工作站数量', '是否有输送线', '出库拣货时间(h)', '执行任务总时长(h)', '倍速']df_final = pd.concat([df_final,data_cell])df_final = df_final.sort_values(by = '倍速',axis = 0,ascending = True)df_final.to_csv(r'C:\Users\24655\Desktop\python知识管理\python脚本和算法\脚本\read_pdf\数据\{}个pdf文件数据汇总.csv'.format(len(k)),index = False,encoding='gbk')
【使用python获取pdf所需数据】相关推荐
- 可转债代码交流第二期:利用Python获取集思录数据(改)
上期内容讲解了宁稳网数据获取的方法(用于初步计算未上市可转债价格),具体方法参考第一期:可转债代码交流第一期:利用Python获取宁稳网数据(包含基本的环境搭建与Python编辑器安装方法) 本人并非 ...
- Python获取丁香园疫情数据并解析json数据
Python获取丁香园疫情数据并解析json数据 在利用pyecharts V1.x版本,使用Map对象进行制图时,对数据格式的要求比较高,如果数据格式不正确可能达不到我们预期的效果.在我的前一篇文章 ...
- python处理pdf提取指定数据_python从PDF中提取数据的示例
01 前言 数据是数据科学中任何分析的关键,大多数分析中最常用的数据集类型是存储在逗号分隔值(csv)表中的干净数据.然而,由于可移植文档格式(pdf)文件是最常用的文件格式之一,因此每个数据科学家都 ...
- 使用Python获取股票单日成交数据
本文主要介绍一个比较好的开源项目 Github:AKShare开源财经数据接口,该项目整合了各大财经网站的http接口:腾讯财经.新浪财经.网易财经.东财等....Github上介绍该项目是JetBr ...
- python 获取东方财富网站的数据
python 获取东方财富网站的数据 完整代码下载:https://github.com/tanjunchen/SpiderProject/tree/master/EastWealthWebsite ...
- 利用 Python 获取余额宝历史收益数据
最近想做一个关于用一些指数基金与余额宝组成的简单 风险-无风险 投资组合的实验计算,发现通达信之类的行情软件并没有提供完整的余额宝收益信息,如通达信仅有年化收益率的数据,并没有万份收益的数据.因此考虑 ...
- python tabula获取pdf的列表数据
tabula的功能比camelot更加强大,可以同时对多个表格数据进行提取.项目的具体地址请参考:https://github.com/chezou/tabula-py 安装 tabula的安装是非常 ...
- python实时股票数据折线图_如何用python获取实时的股票数据?
您需要具备以下指示(以Python为例) 1.相关模块及应用原因 requests模块:用于想接口发送请求使用 multiprocessing模块:因为股票数量大单个循环发送请求效率太低,建议进行并发 ...
- 赞!用Python获取A股行情数据的4种方法
今天看到了某位同学关于<深入浅出Python量化交易实战>一书所写的的Python读书笔记,现在推送给大家,望一起探讨学习. 为鼓励大家学习,文末也会进行赠书活动,不容错过! 原文如下: ...
最新文章
- CSS单位分析及CSS颜色表示法、颜色表(调色板)
- Java内存模型终于能讲明白啦,建议收藏!
- Notepad++免费开源文本编辑器
- vue axios全攻略
- python3 sleep 并发_python异步编程之asyncio(百万并发)
- 搜索引擎优化学习原理_如何使用数据科学原理来改善您的搜索引擎优化工作
- 全球数据库--基金/管理产品--分类/行业平均
- ORACLE 等待事件
- while的用法和格式描述符
- 3-20 标准库:find库; 学习编程语言3节课(大多是旧识,全*栈)3-21 面向对象. Percent Strings; 元编程和Rails的相互理解...
- ASP.NET Using 的几种用法
- Android关系型数据库应用——电话(短信)黑名单 .
- 绘制直方图,计算CPK、PPK等数据
- 顺序栈的基本操作(超详细)
- 电子科技大学《图论及其应用》复习总结--第六章 平面图
- 数据结构基础知识——非线性数据结构(二叉树、二叉排序树、优先队列、散列表)
- 【电子设计大赛】2017 年全国大学生电子设计竞赛 仪器和主要元器件清单
- Android 6.0 双向通话自动录音
- Python程序设计,pygame飞机大战课程设计
- 微信小程序游戏开发│智力测试游戏——button版