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 Socket编程入门教程
Jul 11 Python
总结Python编程中三条常用的技巧
May 11 Python
Python实现新浪博客备份的方法
Apr 27 Python
如何在Python函数执行前后增加额外的行为
Oct 20 Python
python自带的http模块详解
Nov 06 Python
Python3.6日志Logging模块简单用法示例
Jun 14 Python
Python递归及尾递归优化操作实例分析
Feb 01 Python
Selenium alert 弹窗处理的示例代码
Aug 06 Python
python实现企业微信定时发送文本消息的示例代码
Nov 24 Python
Python控制台输出俄罗斯方块的方法实例
Apr 17 Python
如何将numpy二维数组中的np.nan值替换为指定的值
May 14 Python
Python使用Beautiful Soup(BS4)库解析HTML和XML
Jun 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/12/13 PHP
php部分常见问题总结
2008/03/27 PHP
Yii框架使用魔术方法实现跨文件调用功能示例
2017/05/20 PHP
php+redis实现消息队列功能示例
2019/09/19 PHP
javascript 尚未实现错误解决办法
2008/11/27 Javascript
JS 文件本身编码转换 图文教程
2009/10/12 Javascript
纯JAVASCRIPT图表动画插件Highcharts Examples
2011/04/16 Javascript
javascript+xml实现简单图片轮换(只支持IE)
2012/12/23 Javascript
12种JavaScript常用的MVC框架比较分析
2015/11/16 Javascript
Bootstrap编写一个同时适用于PC、平板、手机的登陆页面
2016/06/30 Javascript
jQuery仿京东商城楼梯式导航定位菜单
2016/07/25 Javascript
JavaScript与ActionScript3两者的同性与差异性
2016/09/22 Javascript
老生常谈JavaScript中的this关键字
2016/10/01 Javascript
简单实现vue验证码60秒倒计时功能
2017/10/11 Javascript
Mac 安装 nodejs方法(图文详细步骤)
2017/10/30 NodeJs
js 根据对象数组中的属性进行排序实现代码
2019/09/12 Javascript
vue keep-alive实现多组件嵌套中个别组件存活不销毁的操作
2020/10/30 Javascript
JavaScript实现网页tab栏效果制作
2020/11/20 Javascript
用python实现面向对像的ASP程序实例
2014/11/10 Python
用Python实现服务器中只重载被修改的进程的方法
2015/04/30 Python
Python的爬虫包Beautiful Soup中用正则表达式来搜索
2016/01/20 Python
python之PyMongo使用总结
2017/05/26 Python
Python对切片命名的实现方法
2018/10/16 Python
Python 仅获取响应头, 不获取实体的实例
2019/08/21 Python
解决Django layui {{}}冲突的问题
2019/08/29 Python
jupyter notebook tensorflow打印device信息实例
2020/04/20 Python
python的pip有什么用
2020/06/17 Python
Python matplotlib模块及柱状图用法解析
2020/08/10 Python
教你使用Sublime text3搭建Python开发环境及常用插件安装另分享Sublime text3最新激活注册码
2020/11/12 Python
全球性的在线购物网站:Zapals
2017/03/22 全球购物
EJB实例的生命周期
2016/10/28 面试题
好军嫂事迹材料
2014/01/15 职场文书
我爱我校演讲稿
2014/05/21 职场文书
2016年班主任新年寄语
2015/08/18 职场文书
golang 如何通过反射创建新对象
2021/04/28 Golang
解决tk mapper 通用mapper的bug问题
2021/06/16 Java/Android