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统计一个文本中重复行数的方法
Nov 19 Python
使用python实现接口的方法
Jul 07 Python
pandas多级分组实现排序的方法
Apr 20 Python
python实现在函数中修改变量值的方法
Jul 16 Python
Django文件存储 默认存储系统解析
Aug 02 Python
python对象转字典的两种实现方式示例
Nov 07 Python
Python稀疏矩阵及参数保存代码实现
Apr 18 Python
Python如何安装第三方模块
May 28 Python
python3 中时间戳、时间、日期的转换和加减操作
Jul 14 Python
PyCharm 2020.2下配置Anaconda环境的方法步骤
Sep 23 Python
matplotlib部件之套索Lasso的使用
Feb 24 Python
详解Python 3.10 中的新功能和变化
Apr 28 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的一个完整SMTP类(解决邮件服务器需要验证时的问题)
2006/10/09 PHP
php获取表单中多个同名input元素的值
2014/03/20 PHP
thinkPHP5.0框架开发规范简介
2017/03/25 PHP
比较全面的event对像在IE与FF中的区别 推荐
2009/09/21 Javascript
判断是否安装flash player及当前版本的JS代码
2013/08/08 Javascript
多个jquery.datatable共存,checkbox全选异常的快速解决方法
2013/12/10 Javascript
JS制作手机端自适应缩放显示
2015/06/11 Javascript
jQuery Mobile弹出窗、弹出层知识汇总
2016/01/05 Javascript
学习JavaScript设计模式之模板方法模式
2016/01/20 Javascript
浅谈AngularJs指令之scope属性详解
2016/10/24 Javascript
使用base64对图片的二进制进行编码并用ajax进行显示
2017/01/03 Javascript
基于layer.js实现收货地址弹框选择然后返回相应的地址信息
2017/05/26 Javascript
浅析JS中常用类型转换及运算符表达式
2017/07/23 Javascript
vue轮播图插件vue-awesome-swiper
2017/11/27 Javascript
JS运动特效之同时运动实现方法分析
2018/01/24 Javascript
JS判断两个数组或对象是否相同的方法示例
2019/02/28 Javascript
node将geojson转shp返回给前端的实现方法
2019/05/29 Javascript
解决Vue项目打包后打开index.html页面显示空白以及图片路径错误的问题
2019/10/25 Javascript
Vue组件通信入门之Provide和Inject机制
2019/12/29 Javascript
Python中删除文件的程序代码
2011/03/13 Python
Python中random模块生成随机数详解
2016/03/10 Python
python3实现多线程聊天室
2018/12/12 Python
Python使用pandas和xlsxwriter读写xlsx文件的方法示例
2019/04/09 Python
Python 操作 ElasticSearch的完整代码
2019/08/04 Python
Python3.6+selenium2.53.6自动化测试_读取excel文件的方法
2019/09/06 Python
Python文件读写w+和r+区别解析
2020/03/26 Python
pycharm 实现复制一行的快捷键
2021/01/15 Python
HTML5新特性 多线程(Worker SharedWorker)
2017/04/24 HTML / CSS
如何写出高质量、高性能的MySQL查询
2014/11/17 面试题
酒店出纳岗位职责
2013/12/29 职场文书
乡村卫生服务一体化管理实施方案
2014/03/30 职场文书
工作检讨书怎么写
2014/10/10 职场文书
临时用工协议书范本
2014/10/29 职场文书
2015年图书馆个人工作总结
2015/05/26 职场文书
2019年图书室自查报告范本
2019/10/12 职场文书
导游词之临安白水涧
2019/11/05 职场文书