python -从文件夹批量提取pdf文章的第n页,并存储起来

python -从文件夹批量提取pdf文章的第n页,并存储起来

废话不多说,看下面代码

讲解一下下面代码

reader = PyPDF2.PdfReader (file)

将文件转化为PdfReader 对象,方便使用内置方法。

first_page = reader.pages0

提取第一页

writer = PyPDF2.PdfWriter ()

writer.add_page (first_page)

writer.write(output_file)

将代码写入对应位置

python 复制代码
def process_folder(folder_path):
    # 遍历文件夹中的所有文件
    for filename in os.listdir(folder_path):
        if filename.endswith('.pdf'):
            pdf_path = os.path.join(folder_path, filename)
            print(pdf_path)
            output_path = os.path.join('D:\data\pdf_output', filename[0:-4]+'(首页)'+'.pdf')
            # 提取第一页并保存为同名文件
            extract_first_page(pdf_path, output_path)
            print(f"Processed {filename}")

读取某个文件夹下的所有pdf文件,并调用函数取出第一页,并写下来。

python 复制代码
import os
import PyPDF2

def extract_first_page(pdf_path, output_path):
    # 打开PDF文件
    with open(pdf_path, 'rb') as file:
        reader = PyPDF2.PdfReader (file)
        # 获取第一页
        first_page = reader.pages[0]
        # 写入新PDF文件
        with open(output_path, 'wb') as output_file:
            writer = PyPDF2.PdfWriter ()
            writer.add_page (first_page)
            writer.write(output_file)

def process_folder(folder_path):
    # 遍历文件夹中的所有文件
    for filename in os.listdir(folder_path):
        if filename.endswith('.pdf'):
            
            pdf_path = os.path.join(folder_path, filename)
            print(pdf_path)
            output_path = os.path.join('D:\data\pdf_output', filename[0:-4]+'(首页)'+'.pdf')
            # 提取第一页并保存为同名文件
            extract_first_page(pdf_path, output_path)
            print(f"Processed {filename}")

# 指定你的文件夹路径
folder_path = 'D:\data\pdf'
process_folder(folder_path)
相关推荐
风骏时光牛马1 小时前
生成一个AI多模态标题,仅输出一条标题,无额外文字、问句、备选、配图、文案等任何附加内容,不需要其他的任务服务 只要标题。
前端
测试界的小码农2 小时前
【Linux 命令实战(06):Linux 文件权限管理,掌握 chmod、chown、chgrp】
linux·运维·服务器
wangruofeng2 小时前
从 GIF 到 AVIF:网页图片格式演进与 2026 年选型指南
前端·架构
databook2 小时前
时间序列数据,先拆规律还是先查异常
python·数据挖掘·数据分析
师夷长技以自愈3 小时前
手搓 AI Agent 第 8 篇:从手写循环到画流程图——LangGraph 封装
人工智能·python
清晨Coding3 小时前
为什么用 React Developer Tools 查看组件树这么乱?
前端·react.js
鶴哥只手遮天3 小时前
《Electron 45.2.3 内核解剖》第 4 章 补丁体系:380 个补丁改了什么
前端·electron
一条破秋裤4 小时前
【1114】【并发控制】【笔记】
linux
aifannihao4 小时前
Rust 1.100 的 DropGuard:用 Python 实测失败回滚与吞异常
python·rust·异常处理·标准库·contextlib
2035去旅行5 小时前
ADB的底层原理
linux·adb·嵌入式·arm·soc