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之关于循环的小伎俩
Oct 02 Python
Python进程间通信用法实例
Jun 04 Python
Python的消息队列包SnakeMQ使用初探
Jun 29 Python
python3实现跳一跳点击跳跃
Jan 08 Python
对python 矩阵转置transpose的实例讲解
Apr 17 Python
python 使用 requests 模块发送http请求 的方法
Dec 09 Python
python将一个英文语句以单词为单位逆序排放的方法
Dec 20 Python
python3+PyQt5 使用三种不同的简便项窗口部件显示数据的方法
Jun 17 Python
在python中计算ssim的方法(与Matlab结果一致)
Dec 19 Python
Python对象的属性访问过程详解
Mar 05 Python
python import 上级目录的导入
Nov 03 Python
pyqt5蒙版遮罩mask,setmask的使用
Jun 11 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正则提取或替换img标记属性
2013/06/26 PHP
Smarty变量调节器失效的解决办法
2014/08/20 PHP
Ajax PHP JavaScript MySQL实现简易无刷新在线聊天室
2016/08/17 PHP
PHP面向对象程序设计类的定义与用法简单示例
2016/12/27 PHP
yii gridview实现时间段筛选功能
2017/08/15 PHP
php-fpm.conf配置文件中文说明详解及重要参数说明
2018/10/10 PHP
JavaScript 在各个浏览器中执行的耐性
2009/04/06 Javascript
Javascript Tab 导航插件 (23个)
2009/06/11 Javascript
JavaScript中String和StringBuffer的速度之争
2010/04/01 Javascript
理解Javascript_07_理解instanceof实现原理
2010/10/15 Javascript
JavaScript基本编码模式小结
2012/05/23 Javascript
Javascript中string转date示例代码
2013/11/01 Javascript
Jquery实现控件的隐藏和显示实例
2014/02/08 Javascript
jQuery setTimeout传递字符串参数报错的解决方法
2014/06/09 Javascript
JS 打印功能代码可实现打印预览、打印设置等
2014/10/31 Javascript
利用jQuery实现漂亮的圆形进度条倒计时插件
2015/09/30 Javascript
jQuery获取父元素节点、子元素节点及兄弟元素节点的方法
2016/04/14 Javascript
AngularJS中update两次出现$promise属性无法识别的解决方法
2017/01/05 Javascript
vue3.0 CLI - 2.5 - 了解组件的三维
2018/09/14 Javascript
js实现简单分页导航栏效果
2019/06/28 Javascript
vue实现拖拽效果
2019/12/23 Javascript
解决Echarts2竖直datazoom滑动后显示数据不全的问题
2020/07/20 Javascript
解决vue项目axios每次请求session不一致的问题
2020/10/24 Javascript
python中while循环语句用法简单实例
2015/05/07 Python
Python操作串口的方法
2015/06/17 Python
Python 实现「食行生鲜」签到领积分功能
2018/09/26 Python
python中seaborn包常用图形使用详解
2019/11/25 Python
Pytorch 多维数组运算过程的索引处理方式
2019/12/27 Python
Manjaro、pip、conda更换国内源的方法
2020/11/17 Python
Spartoo西班牙官网:法国时尚购物网站
2018/03/27 全球购物
艺龙旅行网酒店预订:国内、港澳台酒店
2018/06/26 全球购物
Feelunique澳大利亚:欧洲的化妆品零售电商
2019/12/18 全球购物
学生周末回家住宿长期请假条
2014/02/15 职场文书
危爆物品安全大检查大整治工作方案
2014/05/03 职场文书
2017公司年会主持人开幕词
2016/03/04 职场文书
话题作文之成长
2019/12/09 职场文书