首页 » AIGC专栏 » 正文

用gpt4o写个拆分pdf文件的脚本

需求是这样的,想借助LLM来做个本地的企业知识库,整了个4000多页的pdf文件,结果这里有限制,就想着不改变程序的情况下(也没那个能力去修改。。。)来完成这个事,拆分pdf为多个小文件。

无奈拆分pdf的应用要么是收费,要么各种广告,算了,还是找个ai帮我写个脚本。

先后使用了文心一言和chatgpt,文心一言可浪费我太多时间,写出来的脚本总是报错,放弃。chatgpt一次成功。

代码如下:

import os
from PyPDF2 import PdfReader, PdfWriter

def split_pdf(input_pdf, pages_per_split):
    try:
        pdf = PdfReader(input_pdf)
        total_pages = len(pdf.pages)
        base_filename = os.path.splitext(os.path.basename(input_pdf))[0]
        output_folder = os.path.dirname(input_pdf)
        
        if not os.path.exists(output_folder):
            output_folder = os.getcwd()  # 使用当前工作目录作为输出文件夹
        
        for i in range(0, total_pages, pages_per_split):
            pdf_writer = PdfWriter()
            for j in range(i, min(i + pages_per_split, total_pages)):
                pdf_writer.add_page(pdf.pages[j])

            output_filename = f"{base_filename}_part_{i // pages_per_split + 1}.pdf"
            output_filepath = os.path.join(output_folder, output_filename)
            with open(output_filepath, "wb") as output_pdf:
                pdf_writer.write(output_pdf)
            print(f"Created: {output_filepath}")

    except FileNotFoundError:
        print(f"Error: The file {input_pdf} was not found.")
    except Exception as e:
        print(f"An unexpected error occurred: {e}")

input_pdf_path = "UPDFName.pdf"  # 替换为你的PDF路径
pages_per_split = 90
split_pdf(input_pdf_path, pages_per_split)

当然需要安装模块(本地有多个python环境):python -m pip install PyPDF2

执行脚本后会非常快速的拆分pdf,并将拆分的文件保存在脚本目录。

发表评论