分享一个用python实现将pdf转txt的代码
问题背景:
有时候需要用到pdf文件中的信息,但是pdf不易编辑,格式有局限性,需要转成txt这样的格式。
目标:
将给定pdf文件中的文本信息(暂时不考虑表格、图片等)抽取出来,写入txt文件中。
主要工具:
python的pdfminer3k库(pdfminer的python3端口,pdfminer是一个用于从文档中提取信息的工具)
代码:
import importlib
import sys
import timefrom pdfminer.pdfparser import PDFParser, PDFDocument
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import PDFPageAggregator
from pdfminer.layout import LTTextBoxHorizontal, LAParams
from pdfminer.pdfinterp import PDFTextExtractionNotAllowedimportlib.reload(sys)
time1 = time.time()def parse(pdf_path, txt_path):# 解析PDF文本,并保存到TXT文件中fp = open(pdf_path, 'rb')# 用文件对象创建一个PDF文档分析器parser = PDFParser(fp)# 创建一个PDF文档doc = PDFDocument()# 连接分析器,与文档对象parser.set_document(doc)doc.set_parser(parser)# 提供初始化密码,如果没有密码,就创建一个空的字符串doc.initialize()# 检测文档是否提供txt转换,不提供就忽略if not doc.is_extractable:raise PDFTextExtractionNotAllowedelse:# 创建PDF,资源管理器,来共享资源rsrcmgr = PDFResourceManager()# 创建一个PDF设备对象laparams = LAParams()device = PDFPageAggregator(rsrcmgr, laparams=laparams)# 创建一个PDF解释器对象interpreter = PDFPageInterpreter(rsrcmgr, device)# 循环遍历列表,每次处理一个page内容# doc.get_pages() 获取page列表for page in doc.get_pages():interpreter.process_page(page)# 接受该页面的LTPage对象layout = device.get_result()# 这里layout是一个LTPage对象 里面存放着 这个page解析出的各种对象# 一般包括LTTextBox, LTFigure, LTImage, LTTextBoxHorizontal 等等# 想要获取文本就获得对象的text属性,for x in layout:if (isinstance(x, LTTextBoxHorizontal)):with open(txt_path, 'a+', encoding='utf-8') as f:results = x.get_text()print(results)f.write(results + "\n")if __name__ == '__main__':pdf_path = './test.pdf'txt_path = './test.txt'parse(pdf_path, txt_path)time2 = time.time()print("总共消耗时间为:", time2 - time1)
分析:
本例只是实现将pdf转txt,也只是抽取了其中的文本信息,其实可以进一步抽取出表格和图片信息,也可以引入python-docx这个库来实现将pdf转为word文件,希望感兴趣的朋友可以探索一下。
分享一个用python实现将pdf转txt的代码相关推荐
- 用python爬小说_今天分享一个用Python来爬取小说的小脚本!(附源码)
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 以下文章天气预报数据分析与统计之美 ,作者:❦大头雪糕❦ Python GUI制作小说下载器教学讲 ...
- Python零基础学习 | 分享一个使用Python画出太极阴阳八卦图的代码
大家好,我是王某人. 一.写在前面 前几天在Python技术交流群有个小伙伴分享一个使用Python画出太极阴阳八卦图的代码,这里拿出来给大家分享下,一起学习下. 不过这里他的代码是有点问题的,不过不 ...
- python爬取天气预报数据并保存为txt格式_今天分享一个用Python来爬取小说的小脚本!(附源码)...
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 以下文章天气预报数据分析与统计之美 ,作者:❦大头雪糕❦ Python GUI制作小说下载器教学讲 ...
- 今天分享一个用Python来爬取小说的小脚本!(附源码)
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 以下文章来源于大邓和他的Python ,作者:大邓 Python爬取知乎数据案例讲解视频 http ...
- 分享一个自学python神器
很多小伙伴问如何学习Python,哪里可以找到实战的Python项目,有没有爬虫案例等等.今天给大家分享一份我朋友老表整理的Python大全学习资料(文末有获取方式). 老表是一名Python终身学习 ...
- 准备分享一个用python写自动抢鞋的程序
为了提高人气,视关注程度,考虑分享一下之前做的一个自动抢鞋的代码,能够自动登录nike官网,支持多用户登录,实现多线程抢鞋的任务,再打印相应的结果.
- 分享一个免费好用的pdf转word工具
微信搜索小程序"文件百变咖",就可以免费使用啦! 功能多!而且免费!!! 那么问题来了,怎么使用呢? 先微信搜索"文件百变咖",找到对应小程序打开. 如下图所示 ...
- python垃圾语言-分享一个用python写的window清理缓存垃圾小程序
[Python] 纯文本查看 复制代码# coding: utf-8 import os import shutil del_extension = [".tmp", " ...
- 分享一个开源的JavaScript统计图表库,40行代码实现专业统计图表
这可能是史上最简单易用的开源统计图表绘制库了.柱状图,饼状图,点状图等等您能想到的类型全部支持. 这个开源库的官网:http://www.chartjs.org/ 直接看如何只用40行代码就实现专业的 ...
最新文章
- linux -L -l区别,linux ls -l 详解[转]
- Python之父Guido推荐的命名规范
- 全栈必备Linux 基础
- linux内核4.0,新闻|Linux内核4.0功能:实时内核补丁,支持PS3
- flume 集群datanode节点失败导致hdfs写失败(转)
- 微软Visual Studio 2005快捷键文档
- 小程序获取头像试试水 02《 程序员变现指南之 微信QQ 小程序 真的零基础开发宝典》
- js文章QQ空间分享
- Snowflake如日中天是否代表Hadoop已死?大数据体系到底是什么?
- ELV局部视图与差分隐私【敏感度到底怎么理解】【下】
- APP界面设计的视觉思维!
- EF安装和更新数据库
- 【图像分割】基于matlab形态学重建和过滤改进FCM算法(FRFCM)图像分割【含Matlab源码 154期】
- Golang:后台管理系统Revel搭建教程
- Kali Linux教程(1)
- 计算机网络技术与应用张基温答案,计算机网络技术与应用教程张基温杜勇刘诗瑾廖伟国董兆军第3章接入技术课件教学.ppt...
- Android10+无法获取IMEI、IOS10+关闭广告跟踪IDFA解决方法
- 标准差分母是n和n-1的区别(有偏估计与无偏估计)
- Android URL scheme跳转失败(源码实现排查思路知识拓展)
- java gc 有钱人_小猿圈java之GC垃圾回收机制