python自动化系列:自动合并目录下的所有PDF文件

在这里插入图片描述

作品介绍

作品名称:自动合并目录下的所有PDF文件

开发环境:PyCharm 2023.3.4 + python3.7

用到的库:os、PyMuPDF

作品简介:该实例用于将指定目录中的所有PDF文件合并成一个单一的PDF文档。这对于需要将分散的PDF页面或文档整合在一起的场景非常有用,例如整理报告、电子书章节或是会议论文集等。

实现过程

一、代码设计

以下是代码的工作流程:

  1. 导入必要的库:
  • fitz:PyMuPDF库,用于处理PDF文件。

  • os:Python的标准库,用于处理文件和目录。

  1. 定义合并PDF文件的函数:
  • src_dir:包含要合并的PDF文件的目录路径。

  • output_path:输出合并后的PDF文件的完整路径。

  1. 检查源目录是否存在:
  • 使用os.path.exists(src_dir)检查源目录是否存在。

  • 如果不存在,打印错误信息并返回False

  1. 获取目录下的所有文件:
  • 使用os.listdir(src_dir)获取源目录下的所有文件。
  1. 检查是否有PDF文件可合并:
  • 检查file_list的长度,如果没有文件,打印提示信息并返回False
  1. 创建一个新的PDF文档:
  • 使用fitz.open()创建一个新的PDF文档对象merged_doc,用于存储合并后的内容。
  1. 遍历目录下的每个文件:
  • 使用for循环遍历file_list中的每个文件名。
  1. 构造每个PDF文件的完整路径:
  • 使用os.path.join(src_dir, path)构造每个文件的完整路径。
  1. 打开每个PDF文件并合并到新文档:
  • 使用fitz.open(src_file)打开每个PDF文件。

  • 使用merged_doc.insert_pdf(doc)将每个文档的内容插入到merged_doc中。

  1. 保存合并后的PDF文档:
  • 使用merged_doc.save(output_path)保存合并后的PDF文档到指定路径。
  1. 关闭合并后的PDF文档:
  • 使用merged_doc.close()关闭merged_doc,释放资源。
  1. 使用示例:
  • 调用merge_pdfs()函数,传入源目录路径和输出PDF文件的路径。
  1. 打印完成信息:
  • 合并完成后,打印“合并成功!”信息。

"""
自动合并pdf文件
"""
import fitz  # PyMuPDF
import os


# 合并多个pdf文件的函数
def merge_pdfs(src_dir, output_path):
    """
    合并多个PDF文件为一个。
    :param src_dir: 合并pdf文件的目录路径
    :param output_path: 输出PDF路径
    """
    if not os.path.exists(src_dir):
        print('文件路径不正确,请检查')
        return False
    file_list = os.listdir(src_dir)  # 获取目录下的文件
    if not len(file_list):
        print('没有可合并的pdf文件')
        return False
    merged_doc = fitz.open()
    for path in file_list:
        src_file = os.path.join(src_dir, path)  # 源路径
        with fitz.open(src_file) as doc:
            merged_doc.insert_pdf(doc)
    merged_doc.save(output_path)
    merged_doc.close()


# 使用示例
merge_pdfs('./split_pages_folder', 'merged.pdf')
print('合并成功!')

Python入门学习资料

1.Python系统学习路线图

首先,对于没有学习方向,知识不体系的人,我把我工作几年整理的学习路线分享给大家,做一个借鉴作用,还不知道怎么学习的人可以直接照着我这个学习路线一个个的去学习,知识不体系的人可以参考下我整理路线的方式,总之希望能够帮到你们!

2.Python必备开发工具

3.看视频进行系统学习

先在网上康康达人分享的视频、干货,通俗易懂,形成初始概念;你会发现博主们在进阶成大神之前他们的学习途径有哪些,找到适合自己风格的课程;

不过这样学习技术比较杂乱,所以通过更加系统的视频来学习,效果更好,也更全面。

4.实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

最后

如果你也想自学Python,可以关注我。我会把踩过的坑分享给你,让你不要踩坑,提高学习速度,还整理出了一套系统的学习路线,这套资料涵盖了诸多学习内容:开发工具,基础视频教程,项目实战源码,51本电子书籍,100道练习题等。相信可以帮助大家在最短的时间内,能达到事半功倍效果,用来复习也是非常不错的。

在这里插入图片描述

希望这篇文章对你有帮助,也希望能帮到大家,因为你我都是热爱python的编程语言爱好者。
————————————————

↓↓↓↓

资料获取:已打包,添加文末 Python笔记领取即可获取!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值