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脚本生成Android SALT扰码的方法
Sep 18 Python
python optparse模块使用实例
Apr 09 Python
Windows下python3.6.4安装教程
Jul 31 Python
Python实现对特定列表进行从小到大排序操作示例
Feb 11 Python
Django项目中添加ldap登陆认证功能的实现
Apr 04 Python
python笔记之mean()函数实现求取均值的功能代码
Jul 05 Python
python数据化运营的重要意义
Nov 25 Python
python通过nmap扫描在线设备并尝试AAA登录(实例代码)
Dec 30 Python
Python实现Word表格转成Excel表格的示例代码
Apr 16 Python
Python实现列表中非负数保留,负数转化为指定的数值方式
Jun 04 Python
python3.5的包存放的具体路径
Aug 16 Python
Python操控mysql批量插入数据的实现方法
Oct 27 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动态创建Web站点的方法
2011/08/14 PHP
CentOS 6.3下安装PHP xcache扩展模块笔记
2014/09/10 PHP
PHP数组游标实现对数组的各种操作详解
2016/01/26 PHP
php同时使用session和cookie来保存用户登录信息的实现代码
2016/05/13 PHP
YII2框架使用控制台命令的方法分析
2020/03/18 PHP
解析John Resig Simple JavaScript Inheritance代码
2012/12/03 Javascript
jquery获取当前点击对象的value方法
2014/02/28 Javascript
jquery mobile动态添加元素之后不能正确渲染解决方法说明
2014/03/05 Javascript
微信小程序 POST请求(网络请求)详解及实例代码
2016/11/16 Javascript
Bootstrap CSS布局之图像
2016/12/17 Javascript
利用angularjs1.4制作的简易滑动门效果
2017/02/28 Javascript
jsonp跨域请求详解
2017/07/13 Javascript
基于Vuejs的搜索匹配功能实现方法
2018/03/03 Javascript
详解如何webpack使用DllPlugin
2018/09/30 Javascript
[37:22]DOTA2上海特级锦标赛D组资格赛#2 Liquid VS VP第一局
2016/02/28 DOTA
[01:20]DOTA2更新全新英雄 天涯墨客现已加入游戏
2018/08/25 DOTA
django 按时间范围查询数据库实例代码
2018/02/11 Python
Python使用numpy实现BP神经网络
2018/03/10 Python
python和opencv实现抠图
2018/07/18 Python
python实现批量文件重命名
2019/10/31 Python
Python魔法方法 容器部方法详解
2020/01/02 Python
利用 Python ElementTree 生成 xml的实例
2020/03/06 Python
python实现模拟器爬取抖音评论数据的示例代码
2021/01/06 Python
详解使用scrapy进行模拟登陆三种方式
2021/02/21 Python
canvas画图被放大且模糊的解决方法
2020/08/11 HTML / CSS
CHARLES & KEITH英国官网:新加坡时尚品牌
2018/07/04 全球购物
Goodee官方商店:迷你投影仪
2021/03/15 全球购物
波兰多品牌运动商店:StreetStyle24.pl
2020/09/22 全球购物
行政经理岗位职责
2013/11/09 职场文书
认识深刻的检讨书
2014/02/16 职场文书
安全目标责任书
2014/07/22 职场文书
2015年汽车销售工作总结
2015/04/07 职场文书
百家讲坛观后感
2015/06/12 职场文书
信用卡收入证明范本
2015/06/12 职场文书
mysql sum(if())和count(if())的用法说明
2022/01/18 MySQL
Windows server 2012 配置Telnet以及用法详解
2022/04/28 Servers