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使用fork实现守护进程的方法
Nov 16 Python
Python使用pickle模块储存对象操作示例
Aug 15 Python
一百行python代码将图片转成字符画
Feb 19 Python
Python从list类型、range()序列简单认识类(class)【可迭代】
May 31 Python
python实现合并多个list及合并多个django QuerySet的方法示例
Jun 11 Python
python将邻接矩阵输出成图的实现
Nov 21 Python
Python异常继承关系和自定义异常实现代码实例
Feb 20 Python
pycharm中import呈现灰色原因的解决方法
Mar 04 Python
如何获取numpy array前N个最大值
May 14 Python
Python一些基本的图像操作和处理总结
Jun 23 Python
Python实现滑雪小游戏
Sep 25 Python
Python字符串格式化方式
Apr 07 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基础学习笔记
2007/03/18 PHP
利用curl抓取远程页面内容的示例代码
2013/07/23 PHP
PHP缓冲区用法总结
2016/02/14 PHP
thinkphp3.2点击刷新生成验证码
2016/02/16 PHP
PHP自动载入类文件函数__autoload的使用方法
2019/03/25 PHP
PHP大文件分块上传功能实例详解
2019/07/22 PHP
PHP单文件上传原理及上传函数的封装操作示例
2019/09/02 PHP
javascript下数值型比较难点说明
2010/06/07 Javascript
jquery 按键盘上的enter事件
2014/05/11 Javascript
Nodejs初级阶段之express
2015/11/23 NodeJs
基于Bootstrap使用jQuery实现简单可编辑表格
2016/05/04 Javascript
jQuery实现表格文本框淡入更改值后淡出效果
2016/09/27 Javascript
Vue.js中数组变动的检测详解
2016/10/12 Javascript
Vue中rem与postcss-pxtorem的应用详解
2019/11/20 Javascript
Postman如何实现参数化执行及断言处理
2020/07/28 Javascript
springboot+vue+对接支付宝接口+二维码扫描支付功能(沙箱环境)
2020/10/15 Javascript
在Python的Django框架中编写错误提示页面
2015/07/22 Python
在Python中增加和插入元素的示例
2018/11/01 Python
Python编程flask使用页面模版的方法
2018/12/28 Python
python实现生成字符串大小写字母和数字的各种组合
2019/01/01 Python
python3 pygame实现接小球游戏
2019/05/14 Python
pytorch使用Variable实现线性回归
2019/05/21 Python
Flask缓存静态文件的具体方法
2020/08/02 Python
英国护肤品购物网站:Beauty Expert
2016/08/19 全球购物
Right-on官方网站:日本知名的休闲服装品牌
2019/07/12 全球购物
英国珠宝和手表专家:Pleasance & Harper
2020/10/21 全球购物
工程现场管理求职自荐信
2013/10/02 职场文书
简历里的自我评价
2014/01/31 职场文书
创业者是否需要商业计划书?
2014/02/07 职场文书
个人自我剖析材料
2014/02/07 职场文书
人事部岗位职责范本
2014/03/05 职场文书
反洗钱宣传活动总结
2014/08/26 职场文书
整改报告格式
2014/11/06 职场文书
人才市场接收函
2015/01/30 职场文书
MySQL COUNT函数的使用与优化
2021/05/10 MySQL
尝试使用Python爬取城市租房信息
2022/04/12 Python