pdf合并(python)

工具代码,背景是某门课的ppt章节分类得过于详细,比如1.01,然后一份pdf文件只有几页,故借助PyPDF2进行pdf文件合并。

python 复制代码
import os
import copy
from PyPDF2 import PdfMerger

target_path = 'D:\\study\\大四上\\生物信息\\ppt'
pdf_lst = [f for f in os.listdir(target_path) if f.endswith('.pdf')]

classified_lst = []
t = []
prefix = None
for filename in pdf_lst:
    if not filename[0].isdigit():
        continue
    if prefix is None or filename[0] == prefix:
        prefix = filename[0]
    else:
        prefix = filename[0]
        classified_lst.append(copy.deepcopy(t))     # 深浅拷贝问题
        t.clear()
    t.append(filename)
classified_lst.append(t)

fclassified_lst = []
for x in classified_lst:
    t = []
    for y in x:
        t.append(os.path.join(target_path, y))
    fclassified_lst.append(t)

# 将相同的章节合并到一个pdf中
num = 1
file_merger = PdfMerger()
for chapter in fclassified_lst:
    for pdf in chapter:
        file_merger.append(pdf)
    file_merger.write(target_path + "\\sum\\chapter" + str(num) + ".pdf")
    num += 1
    file_merger = PdfMerger()

print("done!")
相关推荐
一位代码2 分钟前
python3 | XPath 安装及导入方法
python
张彦峰ZYF5 分钟前
Python 模式匹配与高效正则表达式:从语言特性到工程级简单实践
python·正则表达式
zhishidi10 分钟前
Spring @Scheduled注解调度机制详解
java·python·spring
qq_3561969530 分钟前
Day 43图像数据与显存机制@浙大疏锦行
python
yaoh.wang34 分钟前
力扣(LeetCode) 94: 二叉树的中序遍历 - 解法思路
python·算法·leetcode·面试·职场和发展·二叉树·跳槽
摸鱼仙人~36 分钟前
Flask-SocketIO 连接超时问题排查与解决(WSL / 虚拟机场景)
后端·python·flask
haiyu_y39 分钟前
Day 45 预训练模型
人工智能·python·深度学习
JH灰色40 分钟前
【大模型】-Hugging Face生态
python·语言模型
【建模先锋】42 分钟前
基于CNN-SENet+SHAP分析的回归预测模型!
人工智能·python·回归·cnn·回归预测·特征可视化·shap 可视化分析
拾贰_C1 小时前
【python | pytorch | 】.报错怎么找到问题所在?
开发语言·pytorch·python