批量合并多个PDF文件

1.导入需要的模块。

#导入模块
import os
from PyPDF2 import PdfFileReader,PdfFileMerger

2.编写函数,我这里命名为Merge_PDF,函数里有两个参数src是文件所在的目录,dest是文件合并后保存的文件名。通过遍历目录得到目录下所有符合条件的文件名后,拼接成完整的文件路径保存到pdf_files列表。

def Merge_PDF(src,dest):
    #遍历目录下符合条件的所有文件
    pdf_files = []
    for root,dirs,files in os.walk(src):
        for name in files:
            if name.endswith('.pdf'):
                file = os.path.join(root,name)
                pdf_files.append(file)
        for name in dirs:
            if name.endswith('.pdf'):
                file = os.path.join(root,name)
                pdf_files.append(file)

3.创建PdfFileMerger实例化对象,然后遍历pdf_files列表,读取列表内的文件后合并成一个文件,读取时加了一个判断,忽略加密的文件和读取错误的文件。最后,保存合并后的文件。

#创建PdfFileMerger实例化对象
    pdf_merge = PdfFileMerger()
    #遍历读取文件后合并成一个文件,忽略加密的文件和读取错误的文件
    for file in pdf_files:
        try:
            with open(file,'rb') as fp:
                pdf = PdfFileReader(fp)
                if pdf.isEncrypted:
                    print(f'忽略加密文件:{file}')
                    continue
                pdf_merge.append(pdf,import_bookmarks=True)
        except Exception as e:
            print(f'错误:{e}')
            pass
    #保存文件
    pdf_merge.write(f'{src}{dest}.pdf')
    pdf_merge.close()

4.调用函数

if __name__ == "__main__":
    #指定参数
    src = input("待合并的文件所在目录:").strip()
    dest = input("合并后保存的文件名:").strip()
    #调用函数
    Merge_PDF(src,dest)

5.以下是效果:
运行代码后,会将源目录下所有的pdf文件合并后存到目标目录。
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值