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利用hook技术破解https的实例代码
Mar 25 Python
Python常用的文件及文件路径、目录操作方法汇总介绍
May 21 Python
详谈python http长连接客户端
Jun 12 Python
用Pygal绘制直方图代码示例
Dec 07 Python
python删除服务器文件代码示例
Feb 09 Python
Sanic框架Cookies操作示例
Jul 17 Python
Python如何存储数据到json文件
Mar 09 Python
Django中F函数的使用示例代码详解
Jul 06 Python
Python必须了解的35个关键词
Jul 16 Python
自己搭建resnet18网络并加载torchvision自带权重的操作
May 13 Python
Python+OpenCV实现在图像上绘制矩形
Mar 21 Python
Python实现批量将文件复制到新的目录中再修改名称
Apr 12 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 set_magic_quotes_runtime() 函数过时解决方法
2010/07/08 PHP
PHP过滤★等特殊符号的正则
2014/01/27 PHP
PHP自定义函数格式化json数据示例
2016/09/14 PHP
Laravel框架路由管理简单示例
2019/05/07 PHP
静态的动态续篇之来点XML
2006/12/23 Javascript
JQuery 国际象棋棋盘 实现代码
2009/06/26 Javascript
actionscript与javascript的区别
2011/05/25 Javascript
javascript五图轮播切换实用版
2012/08/17 Javascript
探讨js中的双感叹号判断
2013/11/11 Javascript
JQuery表格拖动调整列宽效果(自己动手写的)
2014/09/01 Javascript
jquery实现TAB选项卡鼠标经过带延迟效果的方法
2015/07/27 Javascript
jQuery实现的网页竖向菜单效果代码
2015/08/26 Javascript
Angular中使用ui router实现系统权限控制及开发遇到问题
2016/09/23 Javascript
Vue 单文件中的数据传递示例
2017/03/21 Javascript
vue基于Vue2.0和高德地图的地图组件实例
2017/04/28 Javascript
vue-router判断页面未登录自动跳转到登录页的方法示例
2018/11/04 Javascript
Vue.js 中的 v-show 指令及用法详解
2018/11/19 Javascript
详解vue 不同环境配置不同的打包命令
2019/04/07 Javascript
解决Vue在Tomcat8下部署页面不加载的问题
2019/11/12 Javascript
python操作日志的封装方法(两种方法)
2019/05/23 Python
CSS3中使用RGBA设置透明度的示例
2015/08/04 HTML / CSS
Html5实现二维码扫描并解析
2016/01/20 HTML / CSS
德国网上超市:myTime.de
2019/08/26 全球购物
香港连卡佛百货官网:Lane Crawford
2019/09/04 全球购物
2019年分享net面试的经历和题目
2016/08/07 面试题
班组长安全生产职责
2013/12/16 职场文书
成品仓管员工作职责
2013/12/29 职场文书
公司薪酬管理制度
2014/01/31 职场文书
社区科普工作方案
2014/06/03 职场文书
村创先争优活动总结
2014/08/28 职场文书
我们的节日元宵节活动总结
2015/02/06 职场文书
校园开放日新闻稿
2015/07/17 职场文书
Python基础之进程详解
2021/05/21 Python
基于Redis结合SpringBoot的秒杀案例详解
2021/10/05 Redis
Go语言读取txt文档的操作方法
2022/01/22 Golang
SQLServer权限之只开启创建表权限
2022/04/12 SQL Server