Python 合并多个 PDF 文件并建立书签目录

简介: Python 合并多个 PDF 文件并建立书签目录

今天在用 WPS 的 PDF 工具合并多个文件的时候,非常不给力,居然卡死了好几次,什么毛病?!

心里想,就这么点儿功能,居然收了我会员费都实现不了?不是吧……

只能自己来了,主要用了 pypdf 库,因为 PyPDF2 版本更新原因,一些类和函数已经过时,截止发文时以下是最新用法(赶紧收藏吧!!)

第一步,安装 pypdf

pip install pypdf

第二步,具体实现

import os
from pypdf import PdfWriter, PdfReader
# 指定路径
target_path = '/Users/jss/Desktop/abc'
# 过滤出以 .pdf 为后缀的文件
pdf_lst = [f for f in os.listdir(target_path) if f.endswith('.pdf')]
# 对文件名进行排序
sorted_files = sorted(pdf_lst)
# 输出排序后的文件名(测试查看是否正确)
# for file in sorted_files:
#     print(file)
# 按具体位置拼接文件名
pdf_lst = [os.path.join(target_path, filename) for filename in sorted_files]
# (测试查看是否正确)
# for file in pdf_lst: 
#     print(file)
# 记录页码
pdf_num = 0
# 获取输出流
file_merger = PdfWriter()
# 循环合并
for pdf in pdf_lst:
    # 提取文件名,用作书签目录
    pdf_title = pdf.split("/")[-1].split('.')[0]
    # 合并pdf文件
    file_merger.append(pdf, pdf_title)
    # 记录页数
    pdf_num += len(PdfReader(pdf).pages)
    
# 指定文件输出合并后文件
file_merger.write("/Users/jss/Desktop/merge.pdf")
# 关闭流
file_merger.close()

效果

目录
相关文章
|
2月前
|
Python
在 Python 中,如何处理文件和目录?
在 Python 中,如何处理文件和目录?
81 0
|
2月前
|
安全 Unix Linux
在Python中,如何处理文件和目录的访问权限?
【2月更文挑战第15天】【2月更文挑战第43篇】在Python中,如何处理文件和目录的访问权限?
|
4月前
|
BI Windows Python
python报表自动化系列 - 在Windows中打开指定目录
python报表自动化系列 - 在Windows中打开指定目录
31 1
|
4月前
|
BI Python
python报表自动化系列 - 获取指定目录所有文件绝对路径
python报表自动化系列 - 获取指定目录所有文件绝对路径
27 0
|
5月前
|
Python
python如何使用os模块进行文件和目录操作?
python如何使用os模块进行文件和目录操作?
|
5月前
|
机器学习/深度学习 人工智能 PyTorch
《人工智能专栏》专栏介绍 & 专栏目录 & Python与Python | 机器学习 | 深度学习 | 目标检测 | YOLOv5及其改进 | YOLOv8及其改进 | 关键知识点 | 各种工具教程
《人工智能专栏》专栏介绍 & 专栏目录 & Python与Python | 机器学习 | 深度学习 | 目标检测 | YOLOv5及其改进 | YOLOv8及其改进 | 关键知识点 | 各种工具教程
111 1
|
13天前
|
数据安全/隐私保护 Python
Python文件与目录操作:面试中的高频考点
【4月更文挑战第15天】本文介绍了Python文件和目录操作的面试重点,包括文件的读写、目录遍历及权限管理。强调了文件关闭、异常处理、特殊文件判断以及权限位和权限字符串的理解。提供了代码示例,如读写文件、遍历目录和更改文件权限,帮助读者在面试中表现出色。掌握这些技能将对编程求职之路大有裨益。
17 0
|
2月前
|
开发者 Python
Python语言的文件及目录访问
Python语言的文件及目录访问
|
2月前
|
Python
Python文件目录操作就是这么6
Python文件目录操作就是这么6
15 0
|
4月前
|
Java Go Python
【Python每日一练】总目录(2023.2.18~5.18)共90篇
【Python每日一练】总目录(2023.2.18~5.18)共90篇
195 0
【Python每日一练】总目录(2023.2.18~5.18)共90篇