零代码编程:用Kimichat从PDF文件中批量提取图片

server/2024/10/21 4:00:24/

一个PDF文件中,有很多图片,想批量提取出来,可以借助kimi智能助手。

在借助kimi智能助手中输入提示词:

你是一个Python编程专家,要完成一个网页爬取Python脚本的任务,具体步骤如下:

打开文件夹:E:\6451

读取里面的PDF文件;

将PDF文件里面的图片都保存到E:\6451

注意:图片体积较大,占用内存高,要将PDF文件中的图片分批次提取,而不是一次性提取所有图片

kim生成的Python源代码:

import fitz # PyMuPDF

import os

# 定义文件夹路径

folder_path = 'E:\\6451'

# 确保文件夹存在

if not os.path.exists(folder_path):

print(f"The folder {folder_path} does not exist.")

else:

# 读取文件夹中的所有PDF文件

for filename in os.listdir(folder_path):

if filename.lower().endswith('.pdf'):

pdf_path = os.path.join(folder_path, filename)

doc = fitz.open(pdf_path)

# 逐页提取图片

for page_number in range(len(doc)):

page = doc[page_number]

img_list = page.get_images(full=True)

# 分批次提取页面中的图片

for img_index, img in enumerate(img_list, start=1):

try:

xref = img[0]

info = doc.extract_image(xref)

image_bytes = info["image"]

# 为图片构造一个唯一的文件名

image_filename = f"{os.path.splitext(filename)[0]}_{page_number + 1}_img_{img_index}.png"

image_save_path = os.path.join(folder_path, image_filename)

# 保存图片

with open(image_save_path, "wb") as image_file:

image_file.write(image_bytes)

print(f"Image saved: {image_save_path}")

except Exception as e:

print(f"Error saving image from page {page_number + 1}: {e}")

# 释放内存

del page, img_list

# 关闭PDF文档

doc.close()

print(f"Finished extracting images from {filename}")

# 输出信息到屏幕

print("All images have been extracted from PDF files.")

# 确保屏幕输出信息

input("按任意键退出...")

在vscode中运行Python程序,成功提取所有图片:


http://www.ppmy.cn/server/31909.html

相关文章

软件应用开发安全设计指南

1.1 应用系统架构安全设计要求 设计时要充分考虑到系统架构的稳固性、可维护性和可扩展性,以确保系统在面对各种安全威胁时能够稳定运行。 在设计系统架构时,要充分考虑各种安全威胁,如DDoS攻击、SQL注入、跨站脚本攻击(XSS&…

代码随想录算法训练营第三十八天| 509. 斐波那契数,70. 爬楼梯 , 746. 使用最小花费爬楼梯

509. 递归经典入门&#xff0c;不难。需要注意在初始化dp数组的时候注意的是new int[n 1], 不是n. 因为下标从0开始所以在遍历的时候要等n再停止&#xff0c;最后返回dp的最后一个值就可以。 class Solution {public int fib(int n) {if (n < 1) return n; in…

jQuery的简单使用

jQuery的简单使用 jQuery查找父、子、兄弟节点jQuery查找内容元素筛选遍历元素操作元素width() / height() 设置宽高.css() 设值样式attr() / prop() 设置属性增加、删除、切换class删除和清空 操作元素总结选择表达式链式操作取值和赋值函数 HTML_1 <table id"table_…

Activiti7 开发快速入门【2024版】

记录开发最核心的部分&#xff0c;理论结合业务实操减少废话&#xff0c;从未接触工作流快速带入开发。假设你是后端的同学学过JAVA和流程图&#xff0c;则可以继续向后看&#xff0c;否则先把基础课程书准备好先翻翻。 为什么要工作流 比起直接使用状态字段&#xff0c;工作…

Ubuntu20.04安装MySQL数据库

1、说明 1.1、MySQL介绍 MySQL是一个开源数据库管理系统&#xff0c;通常作为流行的LAMP&#xff08;Linux&#xff0c;Apache&#xff0c;MySQL&#xff0c;PHP / Python / Perl&#xff09;堆栈的一部分安装。它使用关系数据库和SQL&#xff08;结构化查询语言&#xff09;来…

Jenkins自动化搭建记录

每一份努力都是有一份期盼&#xff0c;每一份付出都是为了有更多的收获。 本文记录一次搭建Jenkins自动参数化打包APK的实现过程和碰到的问题&#xff0c;实现了在Windows和Mac系统下的自动化打包流程。 因为Jenkins的安装过程在网上的教程很多&#xff0c;这里就不在赘述。 …

SinoDB SQL管理工具之-DBeaver安装使用说明

本文介绍如何使用DBeaver管理工具连接SinoDB数据库。 1. DBeaver下载 下载地址&#xff1a;Download | DBeaver Community 请根据需求选择对应自己操作系统的版本进行下载。本次示例使用Windows 64位操作系统进行安装配置。下载版本为&#xff1a;dbeaver-ce-23.0.2-x86_64-…

基于SpringBoot的饭店外卖平台的设计与实现

项目描述 这是一款基于SpringBoot的饭店外卖平台的系统 模块描述 用户端 登录 首页 商家信息 点餐 菜品列表 下单 订单列表 账号下单列表 个人中心 个人资料 修改信息 评论管理 评论菜品 查看评论 打赏骑手 打赏骑手 管理员 登录 菜品管理 修改 下架 订单列表 下单记录 菜品管理…