当前位置: 首页 > news >正文

python 将当前目录下的Pdf 每30页切分

前提:

  python环境

安装依赖

pip install PyPDF2

 脚本内容:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
PDF 文件切分脚本
将当前目录下的所有 PDF 文件按每 30 页进行切分
"""import os
import sys
from PyPDF2 import PdfReader, PdfWriter
from pathlib import Pathdef split_pdf(input_path: str, pages_per_split: int = 30):"""将 PDF 文件按指定页数切分成多个子 PDFArgs:input_path: 输入的 PDF 文件路径pages_per_split: 每个子 PDF 的页数,默认 30 页"""# 获取文件信息input_path = Path(input_path)if not input_path.exists():print(f"错误:文件不存在 - {input_path}")returnif not input_path.suffix.lower() == '.pdf':print(f"跳过:不是 PDF 文件 - {input_path}")returnprint(f"\n正在处理:{input_path.name}")# 读取 PDFtry:reader = PdfReader(str(input_path))total_pages = len(reader.pages)print(f"总页数:{total_pages} 页")except Exception as e:print(f"读取 PDF 失败:{e}")return# 计算需要切分成多少个文件num_splits = (total_pages + pages_per_split - 1) // pages_per_splitprint(f"将切分为:{num_splits} 个文件 (每份 {pages_per_split} 页)")# 切分 PDFfor i in range(num_splits):start_page = i * pages_per_splitend_page = min((i + 1) * pages_per_split, total_pages)# 创建新的 PDF writerwriter = PdfWriter()# 添加页面for page_num in range(start_page, end_page):writer.add_page(reader.pages[page_num])# 生成输出文件名output_filename = f"{input_path.stem}_part{i+1:02d}{input_path.suffix}"output_path = input_path.parent / output_filename# 写入文件try:with open(output_path, 'wb') as output_file:writer.write(output_file)print(f"✓ 已创建:{output_filename} (第 {start_page+1}-{end_page} 页)")except Exception as e:print(f"写入文件失败 {output_filename}: {e}")print(f"\n完成!共切分 {num_splits} 个文件")def main():"""主函数:处理当前目录下的所有 PDF 文件"""# 获取当前目录current_dir = Path('.')# 查找所有 PDF 文件pdf_files = list(current_dir.glob('*.pdf')) + list(current_dir.glob('*.PDF'))# 排除已经切分过的文件(名称中包含 _part 的文件)pdf_files = [f for f in pdf_files if '_part' not in f.stem]if not pdf_files:print("当前目录下没有找到 PDF 文件")returnprint(f"找到 {len(pdf_files)} 个 PDF 文件")print("=" * 60)# 处理每个 PDF 文件for pdf_file in pdf_files:try:split_pdf(pdf_file, pages_per_split=30)print("=" * 60)except Exception as e:print(f"处理文件 {pdf_file} 时出错:{e}")print("=" * 60)print("\n所有文件处理完成!")if __name__ == '__main__':main()

修改切分页数,可修改,

PixPin_2026-03-06_15-32-05

http://www.jsqmd.com/news/443720/

相关文章:

  • 最新盒马鲜生卡使用秘籍:回收常见问题解答 - 团团收购物卡回收
  • 微算法科技(NASDAQ: MLGO)探索量子机器学习算法在预测模型中的应用,利用量子核方法提升复杂模式识别能力
  • 华为OD机考双机位C卷终极指南:2025最新题库、算法分类与高效备考策略
  • 终于定下了worthinton液氮罐/气相液氮罐/航空液氮罐,聊聊我为什么选这家供应商 - 品牌推荐大师1
  • 钟表维修保养:基于行业数据的实证指南
  • 2026 技术实务:深度拆解 ChatGPT Plus 订阅风控与支付链路优化策略
  • 网站数据库密码错误,导致无法访问网站怎么办?
  • 在安卓手机上使用WSToolbox部署Kodbox不显示验证码的一个解决办法
  • 2026年 数字化手术室系统厂家推荐榜:智能高清智慧医院手术室解决方案,专业实力与创新技术深度解析 - 品牌企业推荐师(官方)
  • 山海鲸教育版来了~助力数字化教育全面升级
  • 前端硬核指南:如何让AI“打字机”效果在浏览器里丝滑跑起来?
  • 2026联合省选游记
  • 资本出海必看!持牌机构笛杨咨询全解BVI离岸架构搭建流程 - 博客万
  • 分析2026年天津口碑好的乳胶气球制造商哪家好 - 工业设备
  • 百联OK卡网上回收如何选平台,新手避坑指南 - 淘淘收小程序
  • 分析2026年都燕果律师服务性价比,擅长案件及选择哪家好 - 工业品网
  • 帝国cms不小心把后台登录超时时间改为0,进不了后台,怎么办?EmpireCMS
  • js逆向hook
  • 京东 E 卡闲置不用?超全回收攻略,安全省心不踩坑 - 可可收
  • 沃尔玛卡密怎么回收,不可不看的几种方式 - 淘淘收小程序
  • 2026年上海信誉好的纠纷律师团队排名,口碑不错的纠纷律师推荐 - 工业品牌热点
  • Typecho分类/标签计数不准怎么办
  • 企业微信功能详细介绍2026最新版AI办公与内外协同一体化完整指南 - 品牌2026
  • 2026年焊锡机厂家推荐排行榜:在线式焊锡机、波峰焊加锡设备、AOI/CCD视觉焊锡机、全自动焊线/组装焊接机,高精度智能焊接解决方案精选 - 品牌企业推荐师(官方)
  • 2026年高品质婚庆气球厂家口碑排名,全国范围内好用品牌汇总 - 工业设备
  • 克苏鲁游戏PCGAME-The.Dark.Rites.of.Arkham-TENOKE 分享
  • 聊聊2026年婚姻有实力律师,成都靠谱婚姻律师事务所排名 - 工业品网
  • 贵州米粉非物质文化遗产品牌哪家好,山沟沟里的粉值得推荐吗 - mypinpai
  • 猎翼无人机,灾后重建的“空中勘察员”:2026地震救援轻量化无人机推荐 - 品牌2026
  • 2026 电线电缆厂家优选 TOP5:电力与控制电缆领域的实力标杆解析 - 深度智识库