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获取apk文件URL地址实例
Nov 01 Python
python计算文本文件行数的方法
Jul 06 Python
python 默认参数问题的陷阱
Feb 29 Python
实例讲解Python中global语句下全局变量的值的修改
Jun 16 Python
使用PyV8在Python爬虫中执行js代码
Feb 16 Python
python的多重继承的理解
Aug 06 Python
python实现多线程网页下载器
Apr 15 Python
基于DataFrame筛选数据与loc的用法详解
May 18 Python
Python模拟简单电梯调度算法示例
Aug 20 Python
django之导入并执行自定义的函数模块图解
Apr 01 Python
Python中and和or如何使用
May 28 Python
Pandas数据结构之Series的使用
Mar 31 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/06 PHP
php数组函数序列之in_array() 查找数组值是否存在
2011/10/29 PHP
web server使用php生成web页面的三种方法总结
2013/10/28 PHP
取得单条网站评论以数组形式进行输出
2014/07/28 PHP
从零开始学YII2框架(一)通过Composer安装Yii2框架
2014/08/20 PHP
php如何控制用户对图片的访问 PHP禁止图片盗链
2016/03/25 PHP
PHP基于socket实现的简单客户端和服务端通讯功能示例
2017/07/10 PHP
yii2实现Ueditor百度编辑器的示例代码
2018/11/02 PHP
javascript this用法小结
2008/12/19 Javascript
浅析js封装和作用域
2013/07/09 Javascript
同域jQuery(跨)iframe操作DOM(实例讲解)
2013/12/19 Javascript
js+css实现的简单易用兼容好的分页
2013/12/30 Javascript
node.js中的querystring.escape方法使用说明
2014/12/10 Javascript
百度UEditor编辑器如何关闭抓取远程图片功能
2015/03/03 Javascript
jQuery基于图层模仿五星星评价功能的方法
2015/05/07 Javascript
基于jquery实现日历签到功能
2020/09/11 Javascript
jQuery轻松实现表格的隔行变色和点击行变色的实例代码
2016/05/09 Javascript
详解在 Angular 项目中添加 clean-blog 模板
2017/07/04 Javascript
JS处理一些简单计算题
2018/02/24 Javascript
vue使用vuex实现首页导航切换不同路由的方法
2019/05/08 Javascript
Vue-router 报错NavigationDuplicated的解决方法
2020/03/31 Javascript
[46:38]完美世界DOTA2联赛PWL S2 Magma vs PXG 第三场 11.28
2020/12/02 DOTA
详解python使用turtle库来画一朵花
2019/03/21 Python
Python面向对象之多态原理与用法案例分析
2019/12/30 Python
你可能不知道的Python 技巧小结
2020/01/29 Python
django 实现手动存储文件到model的FileField
2020/03/30 Python
Python 实现PS滤镜中的径向模糊特效
2020/12/03 Python
html5/css3响应式页面开发总结
2018/10/16 HTML / CSS
Html5实现单张、多张图片上传功能
2019/04/28 HTML / CSS
HTML5实现WebSocket协议原理浅析
2014/07/07 HTML / CSS
加拿大女包品牌:Matt & Nat
2017/05/12 全球购物
英国最受欢迎的价格比较网站之一:MoneySuperMarket
2018/12/19 全球购物
EJB timer的种类
2014/10/28 面试题
高中生家长寄语大全
2014/04/03 职场文书
掌握这项技巧,一年阅读300本书不是梦
2019/09/12 职场文书
.Net Core导入千万级数据至Mysql的步骤
2021/05/24 MySQL