Python合并同一个文件夹下所有PDF文件的方法


Posted in Python onMarch 11, 2019

一、需求说明

下载了网易云课堂的吴恩达免费的深度学习的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 Web框架Flask中使用七牛云存储实例
Feb 08 Python
Python实现的根据IP地址计算子网掩码位数功能示例
May 23 Python
基于wxPython的GUI实现输入对话框(1)
Feb 27 Python
Python 使用多属性来进行排序
Sep 01 Python
python 对任意数据和曲线进行拟合并求出函数表达式的三种解决方案
Feb 18 Python
Python调用接口合并Excel表代码实例
Mar 31 Python
如何使用PyCharm将代码上传到GitHub上(图文详解)
Apr 27 Python
python退出循环的方法
Jun 18 Python
python转化excel数字日期为标准日期操作
Jul 14 Python
浅析Python requests 模块
Oct 09 Python
使用Python解析Chrome浏览器书签的示例
Nov 13 Python
pycharm部署django项目到云服务器的详细流程
Jun 29 Python
Python实现截取PDF文件中的几页代码实例
Mar 11 #Python
Python XlsxWriter模块Chart类用法实例分析
Mar 11 #Python
Python写一个基于MD5的文件监听程序
Mar 11 #Python
Python使用reportlab模块生成PDF格式的文档
Mar 11 #Python
Python3转换html到pdf的不同解决方案
Mar 11 #Python
Python多项式回归的实现方法
Mar 11 #Python
Python实现定制自动化业务流量报表周报功能【XlsxWriter模块】
Mar 11 #Python
You might like
js限制checkbox勾选的个数以及php获取多个checkbbox的方法深入解析
2013/07/18 PHP
PHP的RSA加密解密方法以及开发接口使用
2018/02/11 PHP
Javascript - HTML的request类
2007/01/09 Javascript
一个原生的用户等级的进度条
2010/07/03 Javascript
JavaScript中“基本类型”之争小结
2013/01/03 Javascript
jQuery实现图片放大预览实现原理及代码
2013/09/12 Javascript
纯javascript制作日历控件
2015/07/17 Javascript
微信小程序 开发指南详解
2016/09/27 Javascript
JS根据生日月份和日期计算星座的简单实现方法
2016/11/24 Javascript
JavaScript结合HTML DOM实现联动菜单
2017/04/05 Javascript
javaScript 逻辑运算符使用技巧整理
2017/05/03 Javascript
Vue学习笔记之表单输入控件绑定
2017/09/05 Javascript
[01:21]辉夜杯战队访谈宣传片—CDEC
2015/12/25 DOTA
基于python的汉字转GBK码实现代码
2012/02/19 Python
python实现简易内存监控
2018/06/21 Python
python 解压pkl文件的方法
2018/10/25 Python
python制作图片缩略图
2019/04/30 Python
基于python实现蓝牙通信代码实例
2019/11/19 Python
python dict乱码如何解决
2020/06/07 Python
解析python 中/ 和 % 和 //(地板除)
2020/06/28 Python
美国大码时尚女装购物网站:ELOQUII
2017/12/28 全球购物
美国著名的女性内衣零售商:Frederick’s of Hollywood
2018/02/24 全球购物
美国保健品专家:Life Extension
2018/05/04 全球购物
Crocs欧洲官网:Crocs Europe
2020/01/14 全球购物
消防安全员岗位职责
2014/03/10 职场文书
应用数学专业求职信
2014/03/14 职场文书
论文诚信承诺书
2014/05/23 职场文书
拉歌口号大全
2014/06/13 职场文书
工厂门卫的岗位职责
2014/07/27 职场文书
依法行政工作汇报材料
2014/10/28 职场文书
小学教师个人总结
2015/02/05 职场文书
社区党务工作总结2015
2015/05/19 职场文书
跳高加油稿
2015/07/21 职场文书
大学校园餐饮创业计划书
2019/08/07 职场文书
MySQL 那些常见的错误设计规范,你都知道吗
2021/07/16 MySQL
nginx负载功能+nfs服务器功能解析
2022/02/28 Servers