处理Excel、Word、PDF等常用办公软件,处理CSV文件和JSON数据,从Web抓取网络信息,批量处理大量图片,发送电子邮件和短信等等,用Python都可以轻松完成!(文末有彩蛋)
光说不练假把式,人邮君举几个有趣的、实用的例子一起看看叭~
1、从多个PDF中合并选择的页面
假定你有一个很无聊的任务,需要将几十个PDF 文档合并成一个PDF 文档。每一个文档都有一个封面作为第一页,但你不希望合并后的文档中重复出现这些封面。即使有许多免费的程序可以合并PDF,很多也只是简单地将文档合并在一起。
让我们来写一个Python 程序,定制需要合并到PDF 中的页面。
总的来说,程序需要完成以下任务。
- 找到当前工作目录中的所有PDF 文档。
- 按文档名排序,这样就能有序地添加这些PDF。
- 除了第一页之外,将每个PDF 的所有页面写入输出的文档。
从实现的角度来看,代码需要执行以下操作。
- 调用os.listdir(),找到当前工作目录中的所有文件,并去除非PDF 文档。
- 调用Python 的sort()列表方法,将文档名按字母排序。
- 为输出的PDF 文档创建PdfFileWriter 对象。
- 循环遍历每个PDF 文档,为它创建PdfFileReader 对象。
- 针对每个PDF 文档,循环遍历每一页,第一页除外。
- 将页面添加到输出的PDF。
- 将输出的PDF 写入一个文档,名为allminutes.pdf。
针对这个项目,打开一个新的文件编辑器窗口,将它保存为combinePdfs.py。
第 1 步:找到所有PDF 文档
首先,程序需要取得当前工作目录中所有带.pdf 扩展名的文档列表,并对它们排序。
让你的代码看起来像这样:
在#!行和介绍程序做什么的描述性注释之后,代码导入了os 和PyPDF2 模块①。os.listdir(‘.’)调用将返回当前工作目录中所有文档的列表。代码循环遍历这个列表,将带有.pdf 扩展名的文档添加到pdfFiles 中②。然后,列表按照字典顺序排序,调用sort()时需要带有key/str.lower 关键字参数③。
代码创建了一个PdfFileWriter 对象,以保存合并后的PDF 页面④。最后,使用一些注释语句简要描述了剩下的程序。
第 2 步:打开每个PDF 文档
现在,程序必须读取pdfFiles 中的每个PDF 文档。在程序中加入以下代码:
针对每个PDF 文档,循环内的代码调用open(),以’wb’作为第二个参数,用读二进制