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


Posted in Python onApril 28, 2018

本文实例讲述了Python实现合并同一个文件夹下所有PDF文件的方法。分享给大家供大家参考,具体如下:

一、需求说明

下载了网易云课堂的吴恩达免费的深度学习的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文件与目录操作技巧汇总》、《Python编码操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python中使用Tkinter模块创建GUI程序实例
Jan 14 Python
Python类属性的延迟计算
Oct 22 Python
Python编程实战之Oracle数据库操作示例
Jun 21 Python
Python3处理HTTP请求的实例
May 10 Python
Django框架实现逆向解析url的方法
Jul 04 Python
django的model操作汇整详解
Jul 26 Python
python 类的继承 实例方法.静态方法.类方法的代码解析
Aug 23 Python
pytorch GAN生成对抗网络实例
Jan 10 Python
Django跨域资源共享问题(推荐)
Mar 09 Python
Python如何爬取qq音乐歌词到本地
Jun 01 Python
Python 通过正则表达式快速获取电影的下载地址
Aug 17 Python
Python基于Opencv识别两张相似图片
Apr 25 Python
用TensorFlow实现多类支持向量机的示例代码
Apr 28 #Python
详谈python在windows中的文件路径问题
Apr 28 #Python
TensorFlow实现随机训练和批量训练的方法
Apr 28 #Python
对python中的logger模块全面讲解
Apr 28 #Python
详解PyTorch批训练及优化器比较
Apr 28 #Python
Python使用matplotlib实现的图像读取、切割裁剪功能示例
Apr 28 #Python
浅谈python日志的配置文件路径问题
Apr 28 #Python
You might like
深入php 正则表达式的学习探讨
2013/06/06 PHP
PHP实现的简单在线计算器功能示例
2017/08/02 PHP
一文掌握PHP Xdebug 本地与远程调试(小结)
2019/04/23 PHP
基于PHP实现邮箱验证激活过程详解
2020/10/28 PHP
爆炸式的JS圆形浮动菜单特效代码
2010/03/03 Javascript
JQuery表格内容过滤的实现方法
2013/07/05 Javascript
DOM基础教程之使用DOM控制表格
2015/01/20 Javascript
jQuery使用empty()方法删除元素及其所有子元素的方法
2015/03/26 Javascript
对Web开发中前端框架与前端类库的一些思考
2015/03/27 Javascript
动态加载jQuery的方法
2015/06/16 Javascript
简介BootStrap model弹出框的使用
2016/04/27 Javascript
浅谈javascript中关于日期和时间的基础知识
2016/07/13 Javascript
Bootstrap被封装的弹层
2016/07/20 Javascript
jQuery ajax MD5实现用户注册即时验证功能
2016/10/11 Javascript
JQuery实现列表中复选框全选反选功能封装(推荐)
2016/11/24 Javascript
使用JavaScript触发过渡效果的方法
2017/01/19 Javascript
Node.js上传文件功能之服务端如何获取文件上传进度
2018/02/05 Javascript
Bootstrap-table自定义可编辑每页显示记录数
2018/09/07 Javascript
Javascript实现时间倒计时功能
2018/11/17 Javascript
vue 实现图片懒加载功能
2020/12/31 Vue.js
Python 爬虫模拟登陆知乎
2016/09/23 Python
Python探索之pLSA实现代码
2017/10/25 Python
教你使用python实现微信每天给女朋友说晚安
2018/03/23 Python
python删除字符串中指定字符的方法
2018/08/13 Python
python3.6、opencv安装环境搭建过程(图文教程)
2019/11/05 Python
Python常驻任务实现接收外界参数代码解析
2020/07/21 Python
丝绸和人造花卉、植物和树木:Nearly Natural
2018/11/28 全球购物
Tea Collection官网:一家位于旧金山的童装公司
2020/08/07 全球购物
爱的奉献演讲稿
2014/09/10 职场文书
九一八事变纪念日演讲稿
2014/09/14 职场文书
2014年老干部工作总结
2014/11/21 职场文书
合同范本之电脑出租
2019/08/13 职场文书
2019运动会广播加油稿汇总
2019/08/21 职场文书
《敬重卑微》读后感3篇
2019/11/26 职场文书
Mysql排序的特性详情
2021/11/01 MySQL
JavaScript parseInt0.0000005打印5原理解析
2022/07/23 Javascript