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 2.6.6升级到python 2.7.x版本的方法
Oct 09 Python
Python引用类型和值类型的区别与使用解析
Oct 17 Python
python 计算数组中每个数字出现多少次--“Bucket”桶的思想
Dec 19 Python
TensorFlow实现Batch Normalization
Mar 08 Python
pandas数据框,统计某列数据对应的个数方法
Apr 11 Python
python匿名函数用法实例分析
Aug 03 Python
python实现单链表的方法示例
Sep 03 Python
python计算n的阶乘的方法代码
Oct 25 Python
pytorch sampler对数据进行采样的实现
Dec 31 Python
浅谈Python3多线程之间的执行顺序问题
May 02 Python
如何编写python的daemon程序
Jan 07 Python
python 多态 协议 鸭子类型详解
Nov 27 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
虫族 Zerg 热键控制
2020/03/14 星际争霸
PHP 手机归属地查询 api
2010/02/08 PHP
fgetcvs在linux的问题
2012/01/15 PHP
实例讲解php数据访问
2016/05/09 PHP
基于NodeJS的前后端分离的思考与实践(五)多终端适配
2014/09/26 NodeJs
浅析Bootstrip的select控件绑定数据的问题
2016/05/10 Javascript
Angularjs 自定义服务的三种方式(推荐)
2016/08/02 Javascript
Vue 短信验证码组件开发详解
2017/02/14 Javascript
Angularjs分页查询的实现
2017/02/24 Javascript
使用Vue.js和Flask来构建一个单页的App的示例
2018/03/21 Javascript
vue.js使用v-if实现显示与隐藏功能示例
2018/07/06 Javascript
微信小程序中使用ECharts 异步加载数据实现图表功能
2018/07/13 Javascript
Vue对象赋值视图不更新问题及解决方法
2019/06/03 Javascript
JS快速实现简单计算器
2020/04/08 Javascript
返回上一个url并刷新界面的js代码
2020/09/12 Javascript
vue内置组件keep-alive事件动态缓存实例
2020/10/30 Javascript
vant组件中 dialog的确认按钮的回调事件操作
2020/11/04 Javascript
JavaScript实现商品评价五星好评
2020/11/30 Javascript
[00:15]TI9观赛名额抽取
2019/07/10 DOTA
Python查看多台服务器进程的脚本分享
2014/06/11 Python
通过Python来使用七牛云存储的方法详解
2015/08/07 Python
Python面向对象之继承和组合用法实例分析
2018/08/27 Python
Python中实例化class的执行顺序示例详解
2018/10/14 Python
Python中使用__new__实现单例模式并解析
2019/06/25 Python
python matplotlib折线图样式实现过程
2019/11/04 Python
python编写softmax函数、交叉熵函数实例
2020/06/11 Python
英国最大的宠物商店:Pets at Home
2019/04/17 全球购物
AOP的定义以及作用
2013/09/08 面试题
C语言编程练习
2012/04/02 面试题
开会迟到检讨书
2014/02/03 职场文书
出纳工作检讨书
2014/10/18 职场文书
2014教师年度思想工作总结
2014/11/10 职场文书
亲属关系公证书样本
2015/01/23 职场文书
2015年社区科普工作总结
2015/05/13 职场文书
整理Python中常用的conda命令操作
2021/06/15 Python
Redis性能监控的实现
2021/07/09 Redis