python处理pdf文件_好玩的Python 篇一:用Python显示和处理PDF文件
好玩的Python 篇一:用Python显示和处理PDF文件
2020-05-25 00:20:30
0点赞
0收藏
0评论
pdf是电子书,文档经常会用的格式,除了下载各种阅读器以外,我们也可以用Python批量处理大量PDF文件。本文用到了pypdf2,pdfminer.six,pdf2image来做常规处理。
pypdf2 获取pdf的基本信息,如作者,书名,页数等
5 from PyPDF2 import PdfFileReader
6
7 def extract_information(pdf_path,filename):
8 try:
9 with open(pdf_path, 'rb') as f:
10 pdf = PdfFileReader(f)
11 information = pdf.getDocumentInfo()
12 number_of_pages = pdf.getNumPages()
13
14 title=filename.split('.pdf')[0]
15 if information.title is not None and len(information.title)>0:
16 title=information.title
17 print(f"{title} page : {number_of_pages}")
18 except Exception as e:
19 pass
基于文字的PDF
pdfminer.six 可以取出文本
8 from io import StringIO
9 from pdfminer.layout import LAParams
10 from pdfminer.high_level import extract_text_to_fp
16 def get_text(path):
17 output_string = StringIO()
18 with open(path, 'rb') as fin:
19 extract_text_to_fp(fin, output_string)
20 print(output_string.getvalue().strip())
基于扫描图片的PDF
pdf2image 可以提出所有页面存为图片,但因为IO的性能问题。作者提出最好用SSD硬盘和多线程。
6 from pdf2image import convert_from_path
12 def get_cover(path,filename):
13 images=convert_from_path(path)
14 images[0].save(filename+'.jpg')
上面的代码把封面(第一页)取了出来,保存为图片
批量处理
我们可以用Python自带的文件处理功能,结合上面的三个函数,批量处理books目录下的大量pdf文件。
38 if __name__ == '__main__':
39 book_folder=os.path.join(Path.home(),'books')
40 for pdf in os.listdir(book_folder):
41 if pdf.endswith('.pdf'):
42 path=os.path.join(book_folder,pdf)
43 title,page=extract_information(path,pdf)
44 if page>0 and page<50:
45 get_text(path)
46 get_cover(path,pdf)
python处理pdf文件_好玩的Python 篇一:用Python显示和处理PDF文件相关推荐
- python批量处理视频教程_《自拍教程72》Python批量重命名视频文件,AV专家必备!...
案例故事: 任何一款终端产品只要涉及视频播放,就肯定涉及视频的解码播放测试, 作为一名专业的多媒体测试人员,我们需要一堆的规范的标准视频测试文件, 但是发现现有的视频资源名字命名的很随意比如:big_ ...
- python批量命名教程_《自拍教程69》Python 批量重命名音频文件,AV专家必备!
本篇主要学习如何Python自定义模块并调用该模块,并重点介绍Python正则表达式的强大的文本处理能力. 案例故事:任何一款终端产品只要涉及音频输出,就肯定涉及音频的解码, 作为一名专业的AV (A ...
- python程序编译之后、找不到生成的pyc文件_为什么主要的可运行的Python脚本没有被编译为pyc文件,如模块?...
当模块加载时,py文件被"字节编译"为pyc文件.时间戳记记录在pyc文件中. 这样做不会使其运行速度更快,但加载速度更快. 因此,当您加载它们时,"字节编译" ...
- python目录及文件_零基础小白必看:python基本操作-文件、目录及路径
1 前言 在最近开发中,经常需要对文件进行读取.遍历.修改等操作,想要快速.简单的完成这些操作,我选择用 python .通过 python 的标准内置 os 模块,只需要几行代码,即可完成想要的操作 ...
- cmd运行python脚本处理其他文件_如何在cmd命令行里运行python脚本
在电脑安装好python软件之后即可通过cmd命令行运行python脚本文件.不过有些小伙伴不懂,今天小编我就来说一下cmd命令行如何运行python脚本文件. 工具/原料 电脑 python 3 方 ...
- python秒表小项目_适合新手练习的几个python小项目
关于python练习的小项目,其实就是一些常用的模块的针对练习 一.找出电脑中遗忘的大文件 # !/usr/bin/env python # _*_ coding:utf-8 -*- import o ...
- python 只循环目录_看完这篇文章,你的Python基础就差不多了
世界那么大,谢谢你来看我!!关注我你就是个网络.电脑.手机小达人 前言 本文是基于黑马程序员2019年的Python基础班的内容编写的,以2019年的资料为蓝本,2018年的资料为补充,还参考了一些网 ...
- python ide如何运行_如何在Ubuntu上安装IDLE Python IDE
什么是IDLE? IDLE代表一世ntegratedd前夕大号opmentËnvironment.它是用于Python的IDE,使用Python语言本身编写,基于Tkinter并绑定到Tk小部件集. ...
- mac终端python删除键不能用_我把mac 系统下的python目录删掉了怎么办
先去python的官网下载32313133353236313431303231363533e78988e69d8331333363393662最新的python,默认路径安装好. 现在要删除mac自带 ...
最新文章
- mysql text index_MySQL 全文索引(fulltext index)
- java通过url读取远程数据并保持到本地
- 在Web界面中实现Excel数据大量导入的处理方式
- Error:No resource identifier found for attribute 'appComponentFactory' in packag
- CodeForce 237C Primes on Interval(二分+ 素数筛法)
- 【Objective-C】java中的interface与Objective-C中的interface的区别
- protobuf使用错误总结
- Linux之gdb基本调试命令与总结
- 网络基础---网络层
- php pcntl实现多进程
- 服务器一定要改默认端口
- 框架之---Flask
- Android源码下载repo以及repo init总结
- 锁定计算机怎么设密码忘记了怎么办,如何设置笔记本电脑指纹密码忘了怎么办...
- Defaulting to user installation because normal site-packages is not writeable
- python中os库是标准库还是第三方库_Python os 标准库使用
- python酒店数据分析_python数据分析实战——AirBnb用户分群
- 基于大数据的精准营销与应用场景
- Excel·VBA工作簿拆分所有工作表单独保存
- 解决黑苹果和Windows双系统时,时钟不同步的问题
热门文章
- 每日一皮:为这位姑娘的回答鼓掌!
- 码农与架构师之间的差距,究竟在哪里?
- zbg是什么意思_zbg的含义,zbg是什么的缩写,zbg的词语,zbg代表的意思
- 小学数学开灯问题_包含数学暑假答案的一年级数学假期作业题
- Swish激活 hswish激活
- RuntimeError: cudnn64_7.dll not found.
- Python递归实现快速排序
- oculus ios学习资料整理
- php插入mysql数据返回id
- Check failed: error == cudaSuccess (8 vs. 0) invalid device function