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中模拟enum枚举类型的5种方法分享
Nov 22 Python
Python实现计算最小编辑距离
Mar 17 Python
Python学习笔记之open()函数打开文件路径报错问题
Apr 28 Python
python多线程http压力测试脚本
Jun 25 Python
python3.7 使用pymssql往sqlserver插入数据的方法
Jul 08 Python
Python3分析处理声音数据的例子
Aug 27 Python
新版Pycharm中Matplotlib不会弹出独立的显示窗口的问题
Jun 02 Python
详解Flask前后端分离项目案例
Jul 24 Python
python中的垃圾回收(GC)机制
Sep 21 Python
Python如何执行系统命令
Sep 23 Python
在pycharm创建scrapy项目的实现步骤
Dec 01 Python
matplotlib 画动态图以及plt.ion()和plt.ioff()的使用详解
Jan 05 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
php类
2006/11/27 PHP
PHP严重致命错误处理:php Fatal error: Cannot redeclare class or function
2017/02/05 PHP
总结PHP中初始化空数组的最佳方法
2019/02/13 PHP
PHP如何通过带尾指针的链表实现'队列'
2020/10/22 PHP
使用Modello编写JavaScript类
2006/12/22 Javascript
运用Windows XP附带的Msicuu.exe、Msizap.exe来彻底卸载顽固程序
2007/04/21 Javascript
广告代码静态化js通用函数
2007/05/09 Javascript
登陆成功后自动计算秒数执行跳转
2014/01/23 Javascript
Ajax提交与传统表单提交的区别说明
2014/02/07 Javascript
jQuery源码解读之addClass()方法分析
2015/02/20 Javascript
JavaScript实现的简单烟花特效代码
2015/10/20 Javascript
快速解决Canvas.toDataURL 图片跨域的问题
2016/05/10 Javascript
jQuery ajax请求struts action实现异步刷新
2017/04/19 jQuery
jQuery插件FusionCharts绘制的3D双柱状图效果示例【附demo源码】
2017/04/20 jQuery
Router解决跨模块下的页面跳转示例
2018/01/11 Javascript
npm全局模块卸载及默认安装目录修改方法
2018/05/15 Javascript
详解Vue CLI3配置解析之css.extract
2018/09/14 Javascript
浅谈webpack SplitChunksPlugin实用指南
2018/09/17 Javascript
vue的.vue文件是怎么run起来的(vue-loader)
2018/12/10 Javascript
js判断浏览器的环境(pc端,移动端,还是微信浏览器)
2020/12/24 Javascript
js模拟实现烟花特效
2020/03/10 Javascript
[02:17]《辉夜杯》TRG战队巡礼
2015/10/26 DOTA
[02:42]决战东方!DOTA2亚洲邀请赛重启荣耀之争
2017/03/17 DOTA
python获取远程图片大小和尺寸的方法
2015/03/26 Python
Python中字典创建、遍历、添加等实用操作技巧合集
2015/06/02 Python
python编程实现12306的一个小爬虫实例
2017/12/27 Python
Python 解决中文写入Excel时抛异常的问题
2018/05/03 Python
tensorflow 中对数组元素的操作方法
2018/07/27 Python
python下的opencv画矩形和文字注释的实现方法
2019/07/09 Python
Pandas —— resample()重采样和asfreq()频度转换方式
2020/02/26 Python
使用Python绘制台风轨迹图的示例代码
2020/09/21 Python
本科毕业生的求职信范文
2013/11/20 职场文书
机械专业应届生求职信
2013/12/12 职场文书
大一军训感言
2014/01/09 职场文书
写给学生的新学期寄语
2014/01/18 职场文书
美德少年事迹材料(2016推荐版)
2016/02/25 职场文书