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通过递归遍历出集合中所有元素的方法
Feb 25 Python
在Python中调用ggplot的三种方法
Apr 08 Python
python中的字符串内部换行方法
Jul 19 Python
基于Python在MacOS上安装robotframework-ride
Dec 28 Python
pandas dataframe添加表格框线输出的方法
Feb 08 Python
Python实战之制作天气查询软件
May 14 Python
python PyAutoGUI 模拟鼠标键盘操作和截屏功能
Aug 04 Python
python基于property()函数定义属性
Jan 22 Python
jupyter 中文乱码设置编码格式 避免控制台输出的解决
Apr 20 Python
在python中list作函数形参,防止被实参修改的实现方法
Jun 05 Python
使用matplotlib的pyplot模块绘图的实现示例
Jul 12 Python
pandas进行数据输入和输出的方法详解
Mar 23 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遍历目录输出目录及其下的所有文件示例
2014/01/27 PHP
2个Codeigniter文件批量上传控制器写法例子
2014/07/25 PHP
11个PHPer必须要了解的编程规范
2014/09/22 PHP
Yii2超好用的日期和时间组件(值得收藏)
2016/05/05 PHP
浅谈php(codeigniter)安全性注意事项
2017/04/06 PHP
PHP7 新增常量
2021/03/09 PHP
网页中可关闭的漂浮窗口实现可自行调节
2013/08/20 Javascript
js 用CreateElement动态创建标签示例
2013/11/20 Javascript
JS Loading功能的简单实现
2013/11/29 Javascript
jquery实现弹出层效果实例
2015/05/19 Javascript
结合代码图文讲解JavaScript中的作用域与作用域链
2016/07/05 Javascript
JavaScript导航脚本判断当前导航
2016/07/12 Javascript
正则表达式基本语法及表单验证操作详解【基于JS】
2017/04/07 Javascript
jQuery+pjax简单示例汇总
2017/04/21 jQuery
JS笛卡尔积算法与多重数组笛卡尔积实现方法示例
2017/12/01 Javascript
node.js中fs文件系统目录操作与文件信息操作
2018/02/24 Javascript
ES6 中可以提升幸福度的小功能
2018/08/06 Javascript
小程序图片长按识别功能的实现方法
2018/08/30 Javascript
vue2过滤器模糊查询方法
2018/09/16 Javascript
vue中利用Promise封装jsonp并调取数据
2019/06/18 Javascript
解决微信小程序scroll-view组件无横向滚动的问题
2020/02/04 Javascript
vue实现div单选多选功能
2020/07/16 Javascript
完美解决通过IP地址访问VUE项目的问题
2020/07/18 Javascript
详解Python中列表和元祖的使用方法
2015/04/25 Python
python好玩的项目—色情图片识别代码分享
2017/11/07 Python
python爬虫之urllib,伪装,超时设置,异常处理的方法
2018/12/19 Python
Python数据可视化:幂律分布实例详解
2019/12/07 Python
TensorFlow学习之分布式的TensorFlow运行环境
2020/02/05 Python
Python2与Python3的区别详解
2020/02/09 Python
Python3.7实现验证码登录方式代码实例
2020/02/14 Python
银行批评与自我批评
2014/02/10 职场文书
公司领导班子对照检查存在问题整改措施
2014/10/02 职场文书
2014年初中班主任工作总结
2014/11/08 职场文书
研究生给导师的自荐信
2015/03/06 职场文书
教师学期述职自我鉴定
2019/08/16 职场文书
MySQL 8.0 驱动与阿里druid版本兼容问题解决
2021/07/01 MySQL