Python合并同一个文件夹下所有PDF文件的方法


Posted in Python onMarch 11, 2019

一、需求说明

下载了网易云课堂的吴恩达免费的深度学习的pdf文档,但是每一节是一个pdf,我把这些PDF文档放在一个文件夹下,希望合并成一个PDF文件。于是写了一个python程序,很好的解决了这个问题。

二、数据形式

Python合并同一个文件夹下所有PDF文件的方法

三、合并效果

Python合并同一个文件夹下所有PDF文件的方法

四、python代码实现

# -*- coding:utf-8*-
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import os
import os.path
from pyPdf import PdfFileReader,PdfFileWriter
import time
time1=time.time()
# 使用os模块walk函数,搜索出某目录下的全部pdf文件
######################获取同一个文件夹下的所有PDF文件名#######################
def getFileName(filepath):
  file_list = []
  for root,dirs,files in os.walk(filepath):
    for filespath in files:
      # print(os.path.join(root,filespath))
      file_list.append(os.path.join(root,filespath))
  return file_list
##########################合并同一个文件夹下所有PDF文件########################
def MergePDF(filepath,outfile):
  output=PdfFileWriter()
  outputPages=0
  pdf_fileName=getFileName(filepath)
  for each in pdf_fileName:
    print each
    # 读取源pdf文件
    input = PdfFileReader(file(each, "rb"))
    # 如果pdf文件已经加密,必须首先解密才能使用pyPdf
    if input.isEncrypted == True:
      input.decrypt("map")
    # 获得源pdf文件中页面总数
    pageCount = input.getNumPages()
    outputPages += pageCount
    print pageCount
    # 分别将page添加到输出output中
    for iPage in range(0, pageCount):
      output.addPage(input.getPage(iPage))
  print "All Pages Number:"+str(outputPages)
  # 最后写pdf文件
  outputStream=file(filepath+outfile,"wb")
  output.write(outputStream)
  outputStream.close()
  print "finished"
if __name__ == '__main__':
  file_dir = r'D:/course/'
  out=u"第一周.pdf"
  MergePDF(file_dir,out)
  time2 = time.time()
  print u'总共耗时:' + str(time2 - time1) + 's'
"D:\Program Files\Python27\python.exe" D:/PycharmProjects/learn2017/合并多个PDF文件.py
D:/course/C1W1L01 Welcome.pdf
3
D:/course/C1W1L02 WhatIsNN.pdf
4
D:/course/C1W1L03 SupLearnWithNN.pdf
4
D:/course/C1W1L04 WhyIsDLTakingOff.pdf
3
D:/course/C1W1L05 AboutThisCourse.pdf
3
D:/course/C1W1L06 CourseResources.pdf
3
All Pages Number:20
finished
总共耗时:0.128000020981s
Process finished with exit code 0

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

Python 相关文章推荐
在Python中使用NLTK库实现对词干的提取的教程
Apr 08 Python
python中requests小技巧
May 10 Python
pandas实现选取特定索引的行
Apr 20 Python
wx.CheckBox创建复选框控件并响应鼠标点击事件
Apr 25 Python
python ipset管理 增删白名单的方法
Jan 14 Python
python中pygame安装过程(超级详细)
Aug 04 Python
python实现打砖块游戏
Feb 25 Python
virtualenv介绍及简明教程
Jun 23 Python
Python数据可视化实现多种图例代码详解
Jul 14 Python
Python configparser模块封装及构造配置文件
Aug 07 Python
Python非单向递归函数如何返回全部结果
Dec 18 Python
Python中全局变量和局部变量的理解与区别
Feb 07 Python
Python实现截取PDF文件中的几页代码实例
Mar 11 #Python
Python XlsxWriter模块Chart类用法实例分析
Mar 11 #Python
Python写一个基于MD5的文件监听程序
Mar 11 #Python
Python使用reportlab模块生成PDF格式的文档
Mar 11 #Python
Python3转换html到pdf的不同解决方案
Mar 11 #Python
Python多项式回归的实现方法
Mar 11 #Python
Python实现定制自动化业务流量报表周报功能【XlsxWriter模块】
Mar 11 #Python
You might like
FCKeditor的安装(PHP)
2007/01/13 PHP
程序员编程十条戒律
2009/07/09 PHP
ThinkPHP CURD方法之order方法详解
2014/06/18 PHP
jQuery 动画弹出窗体支持多种展现方式
2010/04/29 Javascript
『jQuery』名称冲突使用noConflict方法解决
2013/04/22 Javascript
jquery选择器之基本过滤选择器详解
2014/01/27 Javascript
在浏览器中实现图片粘贴的jQuery插件-- pasteimg使用指南
2014/12/29 Javascript
jQuery里filter()函数与find()函数用法分析
2015/06/24 Javascript
jQuery实现列表内容的动态载入特效
2015/08/08 Javascript
JS实现兼容各种浏览器的高级拖动方法完整实例【测试可用】
2016/06/21 Javascript
微信小程序 wxapp画布 canvas详细介绍
2016/10/31 Javascript
React Native基础入门之初步使用Flexbox布局
2018/07/02 Javascript
elementUI Vue 单个按钮显示和隐藏的变换功能(两种方法)
2018/09/04 Javascript
vue2使用keep-alive缓存多层列表页的方法
2018/09/21 Javascript
jQuery 动画与停止动画效果实例详解
2020/05/19 jQuery
详细分析Node.js 多进程
2020/06/22 Javascript
Python编码爬坑指南(必看)
2016/06/10 Python
浅谈Python实现Apriori算法介绍
2017/12/20 Python
Python3.6.0+opencv3.3.0人脸检测示例
2018/05/25 Python
selenium在执行phantomjs的API并获取执行结果的方法
2018/12/17 Python
Python实现爬取马云的微博功能示例
2019/02/16 Python
linux安装python修改默认python版本方法
2019/03/31 Python
pytorch神经网络之卷积层与全连接层参数的设置方法
2019/08/18 Python
Win10下python 2.7与python 3.7双环境安装教程图解
2019/10/12 Python
python游戏开发的五个案例分享
2020/03/09 Python
Python如何绘制日历图和热力图
2020/08/07 Python
html5 更新图片颜色示例代码
2014/07/29 HTML / CSS
处理textarea中的换行和空格
2019/12/12 HTML / CSS
牛津在线药房:Oxford Online Pharmacy
2020/11/16 全球购物
科研课题实施方案
2014/03/18 职场文书
2015年求职自荐信范文
2015/03/04 职场文书
大学生违纪检讨书范文
2015/05/07 职场文书
采购部2015年度工作总结
2015/07/24 职场文书
2015年高中生国庆节演讲稿
2015/07/30 职场文书
如何利用React实现图片识别App
2022/02/18 Javascript
阿里云服务器Ubuntu 20.04上安装Odoo 15
2022/05/20 Servers