多pdf合并

识别该文件夹下的pdf,按照pdf名称的第一个数字进行排序合并成一个新的pdf文件,名字叫all

from PyPDF2 import PdfMerger
import os
import re

def extract_number(filename):
    # 从文件名中提取第一个数字
    match = re.search(r'\d+', filename)
    return int(match.group()) if match else float('inf')  # 如果没有数字,返回无穷大

def merge_pdfs_in_folder():
    # 指定文件夹路径
    folder_path = r"**含多个pdf需要合并的文件夹路径**" #!!!!!输入路径
    
    # 创建一个PDF合并器对象
    merger = PdfMerger()
    
    try:
        # 获取文件夹中所有的PDF文件
        pdf_files = [f for f in os.listdir(folder_path) if f.lower().endswith('.pdf')]
        
        if not pdf_files:
            print("文件夹中没有找到PDF文件")
            return
        
        # 按文件名中的第一个数字排序
        pdf_files.sort(key=extract_number)
        
        # 按顺序合并PDF文件
        for pdf_file in pdf_files:
            file_path = os.path.join(folder_path, pdf_file)
            merger.append(file_path)
            print(f"正在处理: {pdf_file}")
        
        # 保存合并后的文件
        output_path = os.path.join(folder_path, "all.pdf")
        merger.write(output_path)
        print(f"PDF文件已成功合并,保存至: {output_path}")
            
    except Exception as e:
        print(f"合并过程中发生错误: {str(e)}")
    
    finally:
        # 关闭合并器
        merger.close()

if __name__ == "__main__":
    merge_pdfs_in_folder()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值