#注意:笔者在2021/11/11当天调试过这个代码是可用的,由于pdfminer版本的更新,网络上大多数的语法没有更新,我也是找了好久的文章才修正了我的代码,仅供学习参考。

1、把pdf文件移动到本代码文件的同一个目录下,笔者是在pycharm里面运行的项目,下图中的x1文件夹存储了我需要转换成文本文件的所有pdf文件。然后要在此目录下创建一个存放转换后的txt文件的文件夹,如图中的txt文件夹。

2、编写代码

(1)导入所需库

# coding:utf-8
import os
import re
from pdfminer.converter import LTChar, TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfparser import PDFParser
from pdfminer.pdfdocument import PDFDocument
from pdfminer.pdfpage import PDFTextExtractionNotAllowed
from pdfminer.pdfpage import PDFPage
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import PDFPageAggregator
from pdfminer.layout import LAParams, LTTextBox
from io import StringIO
from io import open

(2)定义一个读取pdf文件内容的函数

#读取pdf文件文本内容
def read(path):parser = PDFParser(path)doc = PDFDocument(parser, '')parser.set_document(doc)if not doc.is_extractable:raise PDFTextExtractionNotAllowedelse:# 创建PDf 资源管理器 来管理共享资源rsrcmgr = PDFResourceManager()# 创建一个PDF聚合器,包含资源管理器与参数分析器laparams = LAParams()device = PDFPageAggregator(rsrcmgr, laparams=laparams)# 创建一个PDF解释器对象interpreter = PDFPageInterpreter(rsrcmgr, device)# 循环遍历列表,每次处理一个page的内容page0 = ''for i, page in enumerate(PDFPage.create_pages(doc)):interpreter.process_page(page)print("START PAGE %d\n" % i)if page is not None:interpreter.process_page(page)print("END PAGE %d\n" % i)# 接受该页面的LTPage对象layout = device.get_result()print(layout)# 这里layout是一个LTPage对象,里面存放着这个 page 解析出的各种对象# 包括 LTTextBox, LTFigure, LTImage, LTTextBoxHorizontal 等line0 = ''for x in layout:if isinstance(x, LTTextBox):line0 = line0 + x.get_text().strip()page0 = page0 + line0return page0 #返回pdf文件中所有提取到的文本内容

(3)主函数

if __name__ == '__main__':path = 'x1'pdfList = os.listdir(path)#批量读取存储pdf_num = 0for li in pdfList:try:pdffile = open(path + '/' + li, "rb")content = read(pdffile)except:continuestr = re.sub('.pdf', '.txt', li)file1 = 'txt/' + strwith open(file1, 'w+', encoding='utf8') as f:f.write(content)pdf_num = pdf_num + 1# handleData(str)print("DONE:" + str )print('number of done-article:',end = "")print(pdf_num)

3、运行结果

大家可以看到这个提取的只是文本内容,我是只需要用来做文本挖掘用的,如果有需要图片的可以稍微改一下read(path)函数就可以啦!

喜欢的可以关注一下小萌新作者哦,后续会不断更新自己的爬虫项目和深度学习有关的python小知识的!!!!!!

参考文章:【zzt原创】pdf内容提取,2021年9月最新可用pdfminer例子_zzt0605的博客-CSDN博客

【最新实用版】Python批量将pdf文本提取并存储到txt文件中相关推荐

  1. python图片保存为txt文件_python + opencv实现提取png图像的像素信息并存储到txt文件中(附安装指导)...

    相关库安装指导: 这里我们需要 opencv_python,numpy,matplotlib库,另外我用的是python3.6.1版本. 一般库大家都是用pip install命令安装的,不过不知道为 ...

  2. bulkwrite 批量插入_SQL SERVER 使用BULK Insert将txt文件中的数据批量插入表中(1)

    1/首先建立数据表 CREATE TABLE BasicMsg ( RecvTime FLOAT NOT NULL , --接收时间,不存在时间相同的数据 AA INT NOT NULL, --24位 ...

  3. python将想要打印的数据输出到txt文件中,打印省略号里面的内容

    本来是想完整输出npy文件,pycharm中只输出部分npy文件,结果输出的文件也是部分数据,代码在后面(代码参考博客忘了,抱歉啊) 后期又搜了如何完整输出的方法,写在后面了. import nump ...

  4. 爬虫(9)-python爬虫爬取电子书存储在txt文件中

    文章目录 1.分析主页面 2.分析电子书主页面 3.分析正文界面 4.存储 5.全部代码+解析 6结果展示 7.总结 本文以笔趣阁网站为例,爬取网站上的电子书并存储在本地记事本中. 网站地址:http ...

  5. HTML中强制换行和自动换行,网页中的纯文本如何强制换行(txt文件)

    有的时候需要把文本文件中的内容显示到网页中,显示效果非常糟糕,比txt文本文件还差,不但没有行间距,连段落也没有了,所有段落被合并成一段,可阅读性变得十分差,可能阅读一会就不想读了.通常的处理方法是把 ...

  6. python批量将pdf转成word_Python-PDF转为Word

    手把手 | 20行Python代码教你批量将PDF转为Word 作者|丁彦军 给各位带来了一个免费简单快速的方法,手把手教你用Python批量处理PDF格式文件,获取自己想要的内容,存为word形式. ...

  7. python中文模糊关键词提取_用Python给你的文本提取关键词

     对代码.编程感兴趣的可以关注「老K玩代码」公众号和我交流!分享代码.经验.项目和资讯 用Python给你的文本提取关键词 关键词提取是自然语言处理中常见的业务模块; 要实现关键词提取,Python ...

  8. 最新 用Python 批量爬取网上图片

    标题 最新 用Python 批量爬取网上美眉图片 故事是这样的:七月份给室友说,我要开始学习Python了.室友一脸懵,并问我Python是啥?确实对于我这个小城市来说Python之风还没有吹到我们这 ...

  9. Tips--利用shell脚本批量提取txt文件中任意字段

    利用shell脚本批量提取txt文件中任意字段 前言 0. 一个例子 1. cat命令 2. '|'符号与'>'符号 3. grep命令 4. awk命令 前言 对于测试中出现的log,我们经常 ...

最新文章

  1. 获取其他进程中ListView的文本
  2. RHEL5下源码配置LAMP全记录
  3. matlab五子棋_应用 | 五子棋游戏——没人能在我的程序里打败我
  4. php 修改多级菜单,用PHP实现多级树型菜单
  5. [导入]不需要任何附加信息的伪凹凸光照计算方法。
  6. 第二周HTML总结3
  7. 头像制作软件有哪些?2022微信头像制作软件推荐
  8. 进制的转换(计算方法)
  9. Lazada(来赞达):就三个步骤!搞定Lazada店铺装修
  10. 牛客网C语言题目练习
  11. macOS卸载Karabiner-Elements
  12. 关于void (visit)(const ElemType )的理解
  13. ZDNS赋能创新型高等学府——清华大学深圳国际研究生院
  14. iOS开发-常用的数学方法
  15. 【实践】Ceph:创建Cephfs文件
  16. 关于零售的本质让人不寒而栗
  17. 安装windows server 2008 R2虚拟机,并成功安装VMware Tools(上)
  18. 如何用纯 CSS 实现酷炫的霓虹灯效果?
  19. 你有哪些受益无穷的好习惯
  20. 鸿蒙视频potato,鸿蒙OS 视频播放开发指导

热门文章

  1. 情场杀手总结泡妞的32条经验
  2. iAPP(08)智能手机呼吸灯控制
  3. C# TreeView和TreeNode的问题
  4. 吃鸡测试硬件的软件,AMD显卡吃鸡究竟什么水平 AMD显卡测评
  5. 坚持学英语 -- HR MM 语录汇总
  6. 使用Matplotlib绘图
  7. 入选亚运会之后,电竞体育化之路还能走多远?
  8. 注册claude AI账号 slack工作区账号
  9. flink根据checkpoints状态恢复数据
  10. 快速排序(三种方法实现)