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实现抓取百度搜索结果页的网站标题信息
Jan 22 Python
日常整理python执行系统命令的常见方法(全)
Oct 22 Python
Python聚类算法之基本K均值实例详解
Nov 20 Python
windows系统下Python环境的搭建(Aptana Studio)
Mar 06 Python
Python之os操作方法(详解)
Jun 15 Python
Python实现去除列表中重复元素的方法小结【4种方法】
Apr 27 Python
python将控制台输出保存至文件的方法
Jan 07 Python
python爬虫中多线程的使用详解
Sep 23 Python
Python变量作用域LEGB用法解析
Feb 04 Python
Keras: model实现固定部分layer,训练部分layer操作
Jun 28 Python
python爬虫使用requests发送post请求示例详解
Aug 05 Python
python使用XPath解析数据爬取起点小说网数据
Apr 22 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 第二节 数据类型之字符串类型
2012/04/28 PHP
跟我学Laravel之配置Laravel
2014/10/15 PHP
PHP微信支付实例解析
2016/07/22 PHP
php使用正则表达式去掉html中的注释方法
2016/11/03 PHP
Laravel 框架路由原理与路由访问实例分析
2020/04/14 PHP
JavaScript实现禁止后退的方法
2006/12/27 Javascript
强大的jquery插件jqeuryUI做网页对话框效果!简单
2011/04/14 Javascript
jQuery中(function(){})()执行顺序的理解
2013/03/05 Javascript
js通过地址栏给action传值(中文乱码全是问号)
2013/05/02 Javascript
为jQuery添加Webkit的触摸的方法分享
2014/02/02 Javascript
jquery.mobile 共同布局遇到的问题小结
2015/02/10 Javascript
jquery获取img的src值的简单实例
2016/05/17 Javascript
javascript 数组的定义和数组的长度
2016/06/07 Javascript
原生JS仿QQ阅读点击展开、收起效果
2017/03/08 Javascript
简述vue中的config配置
2018/01/23 Javascript
JS 自执行函数原理及用法
2019/08/05 Javascript
layer关闭弹出窗口触发表单提交问题的处理方法
2019/09/25 Javascript
浅谈Webpack4 Tree Shaking 终极优化指南
2019/11/18 Javascript
[44:10]2018DOTA2亚洲邀请赛 4.5 淘汰赛 EG vs VP 第一场
2018/04/06 DOTA
浅析Python中MySQLdb的事务处理功能
2016/09/21 Python
Python文件监听工具pyinotify与watchdog实例
2018/10/15 Python
Python虚拟环境的创建和包下载过程分析
2020/06/19 Python
详解python中GPU版本的opencv常用方法介绍
2020/07/24 Python
CSS3 Backgrounds属性相关介绍
2011/05/11 HTML / CSS
HTML5实现移动端弹幕动画效果
2019/08/01 HTML / CSS
Sephora丝芙兰澳洲官方网站:国际知名化妆品购物
2016/10/27 全球购物
aden + anais英国官网:美国婴儿贴身用品品牌
2019/09/08 全球购物
美国在线艺术商店:HandmadePiece
2020/11/06 全球购物
同步和异步有何异同,在什么情况下分别使用他们?
2012/12/28 面试题
培训专员岗位职责
2014/02/26 职场文书
户外活动策划方案
2014/03/12 职场文书
篝火晚会主持词
2014/03/25 职场文书
单位承诺书格式
2014/05/21 职场文书
研究生导师推荐信
2014/09/06 职场文书
新郎新娘答谢词
2015/01/04 职场文书
银行给客户的感谢信
2015/01/23 职场文书