新手也能修改使用的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所需数据】相关推荐

  1. 可转债代码交流第二期:利用Python获取集思录数据(改)

    上期内容讲解了宁稳网数据获取的方法(用于初步计算未上市可转债价格),具体方法参考第一期:可转债代码交流第一期:利用Python获取宁稳网数据(包含基本的环境搭建与Python编辑器安装方法) 本人并非 ...

  2. Python获取丁香园疫情数据并解析json数据

    Python获取丁香园疫情数据并解析json数据 在利用pyecharts V1.x版本,使用Map对象进行制图时,对数据格式的要求比较高,如果数据格式不正确可能达不到我们预期的效果.在我的前一篇文章 ...

  3. python处理pdf提取指定数据_python从PDF中提取数据的示例

    01 前言 数据是数据科学中任何分析的关键,大多数分析中最常用的数据集类型是存储在逗号分隔值(csv)表中的干净数据.然而,由于可移植文档格式(pdf)文件是最常用的文件格式之一,因此每个数据科学家都 ...

  4. 使用Python获取股票单日成交数据

    本文主要介绍一个比较好的开源项目 Github:AKShare开源财经数据接口,该项目整合了各大财经网站的http接口:腾讯财经.新浪财经.网易财经.东财等....Github上介绍该项目是JetBr ...

  5. python 获取东方财富网站的数据

    python 获取东方财富网站的数据 完整代码下载:https://github.com/tanjunchen/SpiderProject/tree/master/EastWealthWebsite ...

  6. 利用 Python 获取余额宝历史收益数据

    最近想做一个关于用一些指数基金与余额宝组成的简单 风险-无风险 投资组合的实验计算,发现通达信之类的行情软件并没有提供完整的余额宝收益信息,如通达信仅有年化收益率的数据,并没有万份收益的数据.因此考虑 ...

  7. python tabula获取pdf的列表数据

    tabula的功能比camelot更加强大,可以同时对多个表格数据进行提取.项目的具体地址请参考:https://github.com/chezou/tabula-py 安装 tabula的安装是非常 ...

  8. python实时股票数据折线图_如何用python获取实时的股票数据?

    您需要具备以下指示(以Python为例) 1.相关模块及应用原因 requests模块:用于想接口发送请求使用 multiprocessing模块:因为股票数量大单个循环发送请求效率太低,建议进行并发 ...

  9. 赞!用Python获取A股行情数据的4种方法

    今天看到了某位同学关于<深入浅出Python量化交易实战>一书所写的的Python读书笔记,现在推送给大家,望一起探讨学习. 为鼓励大家学习,文末也会进行赠书活动,不容错过! 原文如下: ...

最新文章

  1. CSS单位分析及CSS颜色表示法、颜色表(调色板)
  2. Java内存模型终于能讲明白啦,建议收藏!
  3. Notepad++免费开源文本编辑器
  4. vue axios全攻略
  5. python3 sleep 并发_python异步编程之asyncio(百万并发)
  6. 搜索引擎优化学习原理_如何使用数据科学原理来改善您的搜索引擎优化工作
  7. 全球数据库--基金/管理产品--分类/行业平均
  8. ORACLE 等待事件
  9. while的用法和格式描述符
  10. 3-20 标准库:find库; 学习编程语言3节课(大多是旧识,全*栈)3-21 面向对象. Percent Strings; 元编程和Rails的相互理解...
  11. ASP.NET Using 的几种用法
  12. Android关系型数据库应用——电话(短信)黑名单 .
  13. 绘制直方图,计算CPK、PPK等数据
  14. 顺序栈的基本操作(超详细)
  15. 电子科技大学《图论及其应用》复习总结--第六章 平面图
  16. 数据结构基础知识——非线性数据结构(二叉树、二叉排序树、优先队列、散列表)
  17. 【电子设计大赛】2017 年全国大学生电子设计竞赛 仪器和主要元器件清单
  18. Android 6.0 双向通话自动录音
  19. Python程序设计,pygame飞机大战课程设计
  20. 微信小程序游戏开发│智力测试游戏——button版

热门文章

  1. 中国传媒大学计算机课程表,中国传媒大学播本课表.pdf
  2. [安全分享]斗鱼360补天沙龙分享-跨域资源那些事
  3. 香港银行开户请尽早!附最全开户攻略
  4. Domino V12 Beta新玩法
  5. 2-11 CAD基础 镜像(mirror)
  6. 03.Rocky8的kvm创建虚拟主机和迁移主机
  7. 未来十年最吃香专业大盘点,有你的吗?
  8. AE(After Effect) 自带抠像插件详解
  9. 云存储的分布式文件系统
  10. Maven3.6.3 下载与配置