10行Python代码批量实现pdf转txt,word,提取表格到excel
在日常工作中,常常要把文档转格式,比如常见pdf转word,pdf转ppt等,如果数量少的话还好,可以直接去网上找网站解决,多了的话就比较麻烦了,因为很多网站都是限制一天只能转几个,再多就得冲vip。
那么用python脚本来说应该怎么办呢?办法非常简单,几行代码就可以搞定。
python有专门针对PDF,word,txt,ppt,excel 的包。
我们今天就试着把pdf分别转为这四种格式。
先来看怎么把pdf 转为txt,这里说一个前提,pdf是可以编辑的,如果是影印的可以先转为图片然后再文字识别。
首先你需要安装pdf的包,pdfplumber。
直接
pip install pdfplumber
然后,就可以提取了,首先来看怎么提取单页文字,随便找了一份文档:
#提取文字
import pdfplumber
with pdfplumber.open(r'C:\Users\itcast\PycharmProjects\pythonProject1\办公自动化\folder\018-话题讨论-怎样用朋友圈建立信任 .pdf') as f:page = f.pages[2]textdata = page.extract_text()print(textdata)
这样的话就能提取了,效果还不错:
然后保存成txt,另外加上多页提取:
#提取文字
import pdfplumber
with pdfplumber.open(r'C:\Users\itcast\PycharmProjects\pythonProject1\办公自动化\folder\018-话题讨论-怎样用朋友圈建立信任 .pdf') as f:page = f.pages[2]textdata = page.extract_text()print(textdata)
格式保存的还不错,也没有什么乱码的出现。
依据这个原理可以,继续把pdf转成word,这里的pdf限制是只有文字格式,跟刚才的原理一样,是利用的extract_text()函数。
首先需要在终端安装docx这个包。
然后可以执行下面的代码:
下面展示的是单页提取,如果想展示多页提取,可以直接把pages改成[2-5]这种。
#多页提取文字
import pdfplumber
with pdfplumber.open(r'C:\Users\itcast\PycharmProjects\pythonProject1\办公自动化\folder\018-话题讨论-怎样用朋友圈建立信任 .pdf') as f:
for i in range(1,5):page = f.pages[i]textdata = page.extract_text()print(textdata)data = open(r'C:\Users\itcast\PycharmProjects\pythonProject1\办公自动化\folder\txt提取.text',"a",encoding='utf-8')data.write(textdata)
结果如下:有些符号没有提取出来,有些字体不统一,后期需要进行一个调整。
下面一个,就是pdf提取表格放在excel中。
这个来讲的话就比较实用,因为我们如果一个个复制的话真的比较麻烦,还不容易复制完全。这个脚本的限制也有,就是只能提取表格,pdf其他的文字则不能提取。我随意编了一些数据,提取了两页:
我刚试了下,如果直接用pdf复制出来,就是这样的效果:
代码实现:
import pdfplumber
from openpyxl import Workbook
with pdfplumber.open(r'C:\Users\itcast\PycharmProjects\pythonProject1\办公自动化\folder\练习.pdf') as f:workbook = Workbook() #新建工作薄sheet = workbook.active #激活工作表
for i in range(1,3):page = f.pages[i]table = page.extract_table()
for row in table:print(row)sheet.append(row)workbook.save(r"C:\Users\itcast\PycharmProjects\pythonProject1\办公自动化\folder\excel.xlsx")i +=1print("第%d页pdf提取完成"%i)
pdfplumber这个库的具体的说明文档,可以参考这篇文章。
https://blog.csdn.net/weixin_48629601/article/details/107224376
10行Python代码批量实现pdf转txt,word,提取表格到excel相关推荐
- 10 行 Python 代码能实现哪些有趣功能?
大家好,我是菜鸟哥 Python凭借其简洁的代码,赢得了许多开发者的喜爱.因此也就促使了更多开发者用Python开发新的模块,从而形成良性循环,Python可以凭借更加简短的代码实现许多有趣的操作.下 ...
- 10行 python 代码做出哪些酷炫的事情?
来源 | Python小二 Python凭借其简洁的代码,赢得了许多开发者的喜爱.因此也就促使了更多开发者用Python开发新的模块,从而形成良性循环,Python可以凭借更加简短的代码实现许多有趣的 ...
- 10行python代码可以做哪些酷炫的事情
前言 今天玩啥?10行代码够玩吗? Python凭借其简洁的代码,赢得了许多开发者的喜爱.因此也就促使了更多开发者用Python开发新的模块,从而形成良性循环, Python可以凭借更加简短的代码实现 ...
- 10行python代码做出哪些酷炫的事情?
大家好,我是辰哥~ Python凭借其简洁的代码,赢得了许多开发者的喜爱.因此也就促使了更多开发者用Python开发新的模块,从而形成良性循环,Python可以凭借更加简短的代码实现许多有趣的操作.下 ...
- 10行python代码做出哪些酷炫的事情? 小白教程
Python凭借其简洁的代码,赢得了许多开发者的喜爱.因此也就促使了更多开发者用Python开发新的模块,从而形成良性循环,Python可以凭借更加简短的代码实现许多有趣的操作.下面我们来看看,我们用 ...
- 获取clientheight为0_用10行python代码获取全国城市交通生活圈
今天在网上冲浪看到一个很花哨的数据,全国各城市主要商圈从早上6点到晚上10点的20min,30min,45min,60min,90min生活圈轮廓. 1 获取思路 按下F12 按下F12,点击淮海路可 ...
- python自动化--如何用10行Python代码调一个闹钟 #电脑调闹钟
python自动化--如何用10行Python代码写一个闹钟 前言: 文末彩蛋--轻松一刻 更多关于Python的知识请加关注哟~~.若需联系博主请私信或者加博主联系方式: QQ:1542 ...
- 10行python代码的词云
关于词云wordcloud 什么是词云呢?词云又叫文字云,是对文本数据中出现频率较高的"关键词"在视觉上的突出呈现,形成关键词的渲染形成类似云一样的彩色图片,从而一眼就可以领略文本 ...
- 几行python代码批量对身份证加密
为保证客户个人关键信息安全,需要对客户四要素:身份证号.手机号.姓名.银行卡等要素进行特定加密,以密文的方式进行业务工作的传输.我们都知道md5.sha256.sm3d等加密方式是无法逆向解密的,是一 ...
最新文章
- python好还是c+-嵌入式系统中,Python与C/C++哪方更为适用?
- JQuery获取元素本身HTML
- Spring Session实战3
- 双栈共享存储空间(C++代码实现)
- HTML5怎样设置站点,我是怎样让网站用上HTML5 Manifest
- 通过挂载系统光盘搭建本地yum仓库的方法
- 可变、不可变数据类型
- C++通过文件读写保存用户注册登录信息
- spark mysql java_使用Spark/Java将数据框架中的记录插入到MySQL表中
- android 烟花动画效果图,android利用图片实现烟花效果
- tablepc是什么平板电脑_什么是TABLET PC,TABLET PC有什么功能呢?
- 【HAVENT原创】使用 Spring Boot 的 AOP 自定义注解
- Adobe学习记录:PR常用快捷键
- python excel筛选统计_如何用python对excel表格进行筛选
- [转]短信验证码如何防止不恶意点击被刷!
- 鼠友题库每日百题(四)
- 用Python蹭别人家图片接口,做一个【免费图床】吧
- 把简单的 Postman,玩出花样?
- NET 里序列化可概念。
- Faster-RCNN论文细节原理解读+代码实现gluoncv(MXNet)
热门文章
- 会计的思考(15):华而不实的应收账款周转率
- Efficient Large-Scale Language Model Training on GPU ClustersUsing Megatron-LM
- python序列类型是二维元素向量吗_Python 二级选择题
- Unity-地形编辑器-编辑器拓展功能类
- 计算年龄算法(周岁虚岁)
- Execution failed for task ‘:app:javaPreCompileDebug‘.
- 东北大学考研二叉树相关试题
- 基于python实现屏幕共享
- 路由器配置——基于区域的OSPF,MD5认证
- radius mysql md5_在Free Radius的PAP认证过程中使用MD5密码