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爬虫之神器正则表达式
Nov 06 Python
Python中用于去除空格的三个函数的使用小结
Apr 07 Python
python实现搜索指定目录下文件及文件内搜索指定关键词的方法
Jun 28 Python
Python列出一个文件夹及其子目录的所有文件
Jun 30 Python
python爬虫中get和post方法介绍以及cookie作用
Feb 08 Python
Django实战之用户认证(初始配置)
Jul 16 Python
python使用tornado实现简单爬虫
Jul 28 Python
Python多进程写入同一文件的方法
Jan 14 Python
华为校园招聘上机笔试题 扑克牌大小(python)
Apr 22 Python
python支付宝支付示例详解
Aug 22 Python
python数据化运营的重要意义
Nov 25 Python
Python通过文本和图片生成词云图
May 21 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学习之简单计算器实现代码
2011/06/09 PHP
php中jpgraph类库的使用介绍
2013/08/08 PHP
jQuery+PHP实现的掷色子抽奖游戏实例
2015/01/04 PHP
CodeIgniter开发实现支付宝接口调用的方法示例
2016/11/14 PHP
php文件上传原理与实现方法详解
2019/12/20 PHP
javascript结合html5 canvas实现(可调画笔颜色/粗细/橡皮)的涂鸦板
2013/04/27 Javascript
子页向父页传值示例
2013/11/27 Javascript
js设置文本框中焦点位置在最后的示例代码(简单实用)
2014/03/04 Javascript
Jquery注册事件实现方法
2015/05/18 Javascript
jQuery实现的漂亮表单效果代码
2015/08/18 Javascript
谈谈JavaScript异步函数发展历程
2015/09/29 Javascript
jquery常用的12个小功能
2016/07/22 Javascript
Bootstrap 设置datetimepicker在屏幕上面弹出设置方法
2017/03/21 Javascript
Javarscript中模块(module)、加载(load)与捆绑(bundle)详解
2017/05/28 Javascript
jQuery实现QQ空间汉字转拼音功能示例
2017/07/10 jQuery
浅谈React 服务器端渲染的使用
2018/05/08 Javascript
Mint-UI时间组件起始时间问题及时间插件使用
2018/08/20 Javascript
深入Node TCP模块的理解
2019/03/13 Javascript
vue实现图片懒加载的方法分析
2020/02/05 Javascript
解决vue 退出动画无效的问题
2020/08/09 Javascript
Python 初始化多维数组代码
2008/09/06 Python
Python I/O与进程的详细讲解
2019/03/08 Python
如何通过python画loss曲线的方法
2019/06/26 Python
python pytest进阶之conftest.py详解
2019/06/27 Python
使用Pandas的Series方法绘制图像教程
2019/12/04 Python
在Tensorflow中实现梯度下降法更新参数值
2020/01/23 Python
你应该知道的30个css选择器
2014/03/19 HTML / CSS
英国水族馆和池塘用品购物网站:Warehouse Aquatics
2019/08/29 全球购物
普通简短的个人自我评价
2014/02/15 职场文书
教师节横幅标语
2014/10/08 职场文书
自我查摆剖析材料
2014/10/11 职场文书
群众路线自我剖析及整改措施
2014/11/04 职场文书
2014年社区矫正工作总结
2014/11/18 职场文书
学术会议邀请函
2015/01/30 职场文书
客户答谢会致辞
2015/07/30 职场文书
导游词之山东孔庙
2019/11/04 职场文书