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实现网页链接提取的方法分享
Feb 25 Python
web.py中调用文件夹内模板的方法
Aug 26 Python
Python os模块介绍
Nov 30 Python
python实现斐波那契数列的方法示例
Jan 12 Python
Python自动生产表情包
Mar 17 Python
Python中创建字典的几种方法总结(推荐)
Apr 27 Python
Flask框架Jinjia模板常用语法总结
Jul 19 Python
python 画三维图像 曲面图和散点图的示例
Dec 29 Python
python pyinstaller 加载ui路径方法
Jun 10 Python
基于python plotly交互式图表大全
Dec 07 Python
Pandas之read_csv()读取文件跳过报错行的解决
Apr 21 Python
python读取excel数据绘制简单曲线图的完整步骤记录
Oct 30 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+MYSQL会员系统的开发实例教程
2014/08/23 PHP
ECshop 迁移到 PHP7版本时遇到的兼容性问题
2016/02/15 PHP
Laravel中encrypt和decrypt的实现方法
2017/09/24 PHP
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
2019/12/01 PHP
javascript 命名规则 变量命名规则
2010/02/25 Javascript
有道JavaScript监听浏览器的问题
2010/06/23 Javascript
用js获取电脑信息(是使用与IE浏览器)
2013/01/15 Javascript
Ajax异步提交表单数据的说明及方法实例
2013/06/22 Javascript
用js模拟struts2的多action调用示例
2014/05/19 Javascript
用js代码和插件实现wordpress雪花飘落效果的四种方法
2014/12/15 Javascript
JavaScript中的类与实例实现方法
2015/01/23 Javascript
jquery实现拖拽调整Div大小
2015/01/30 Javascript
jquery实现简单的表单验证
2015/11/17 Javascript
jquery实现倒计时效果
2015/12/14 Javascript
基于jquery实现鼠标左右拖动滑块滑动附源码下载
2015/12/23 Javascript
Javascript生成全局唯一标识符(GUID,UUID)的方法
2016/02/27 Javascript
深入理解JavaScript中的call、apply、bind方法的区别
2016/05/30 Javascript
微信小程序 两种滑动方式(横向滑动,竖向滑动)详细及实例代码
2017/01/13 Javascript
深入浅析ES6 Class 中的 super 关键字
2017/10/20 Javascript
浅谈es6中export和export default的作用及区别
2018/02/07 Javascript
jQuery滚动条美化插件nicescroll简单用法示例
2018/04/18 jQuery
微信小程序自定义轮播图
2018/11/04 Javascript
使用React手写一个对话框或模态框的方法示例
2019/04/25 Javascript
javascript实现抢购倒计时程序
2019/08/26 Javascript
为react组件库添加typescript类型提示的方法
2020/06/15 Javascript
js实现简易点击切换显示或隐藏
2020/11/29 Javascript
[02:37]2018DOTA2亚洲邀请赛赛前采访-EG篇
2018/04/03 DOTA
Django imgareaselect手动剪切头像实现方法
2015/05/26 Python
python 实现红包随机生成算法的简单实例
2017/01/04 Python
python 已知平行四边形三个点,求第四个点的案例
2020/04/12 Python
阿里巴巴英国:Alibaba英国
2019/12/11 全球购物
毕业自荐书
2013/12/09 职场文书
政治表现评语
2014/05/04 职场文书
旅游文化节策划方案
2014/06/06 职场文书
解除劳动合同协议书范本2014
2014/09/25 职场文书
mysql获取指定时间段中所有日期或月份的语句(不设存储过程,不加表)
2021/06/18 MySQL