Python 将文件夹中的图片信息导入到 Excel 的表格

2024-05-25 07:36

本文主要是介绍Python 将文件夹中的图片信息导入到 Excel 的表格,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

引言

在数据处理和管理的日常任务中,经常需要将文件夹中的图片文件信息(如文件名、路径、创建日期、大小、分辨率等)整理成一个 Excel 表格。这篇博客将介绍如何使用 Python 中的 wxPython 模块创建一个 GUI 应用,用户可以通过这个应用选择一个文件夹,并将其中的图片信息导入到 Excel 表格中。
C:\pythoncode\new\jpeginfoTOexcel.py

准备工作

在开始之前,请确保已安装以下 Python 模块:

  • wxPython:用于创建 GUI 界面
  • openpyxl:用于操作 Excel 文件
  • Pillow:用于处理图像文件,获取图片分辨率

使用以下命令安装这些模块:

pip install wxPython openpyxl Pillow

实现步骤

第一步:创建 wxPython 界面

首先,我们需要创建一个简单的 GUI 界面,允许用户选择一个文件夹,并点击按钮生成包含图片信息的 Excel 文件。

import wx
import os
from openpyxl import Workbook
from PIL import Image
from datetime import datetimeclass ImageInfoApp(wx.Frame):def __init__(self, parent, title):super(ImageInfoApp, self).__init__(parent, title=title, size=(500, 300))panel = wx.Panel(self)vbox = wx.BoxSizer(wx.VERTICAL)self.dir_picker = wx.DirPickerCtrl(panel, message="Choose a directory")vbox.Add(self.dir_picker, flag=wx.EXPAND | wx.ALL, border=10)self.generate_btn = wx.Button(panel, label="Generate Excel")vbox.Add(self.generate_btn, flag=wx.EXPAND | wx.ALL, border=10)self.Bind(wx.EVT_BUTTON, self.on_generate_excel, self.generate_btn)panel.SetSizer(vbox)self.Centre()self.Show()def on_generate_excel(self, event):dir_path = self.dir_picker.GetPath()if not dir_path:wx.MessageBox('Please select a directory first', 'Error', wx.OK | wx.ICON_ERROR)return# Create a new Excel workbook and select the active worksheetwb = Workbook()ws = wb.activews.append(['Filename', 'Path', 'Creation Date', 'Size (KB)', 'Resolution'])for root, dirs, files in os.walk(dir_path):for file in files:if file.lower().endswith(('.png', '.jpg', '.jpeg', '.bmp', '.gif')):file_path = os.path.join(root, file)creation_date = datetime.fromtimestamp(os.path.getctime(file_path)).strftime('%Y-%m-%d %H:%M:%S')size = os.path.getsize(file_path) / 1024  # Size in KBtry:with Image.open(file_path) as img:resolution = f"{img.width}x{img.height}"except Exception as e:resolution = "N/A"ws.append([file, file_path, creation_date, size, resolution])save_path = os.path.join(dir_path, 'image_info.xlsx')wb.save(save_path)wx.MessageBox(f'Excel file created at {save_path}', 'Success', wx.OK | wx.ICON_INFORMATION)if __name__ == '__main__':app = wx.App(False)frame = ImageInfoApp(None, title='Image Info to Excel')app.MainLoop()
代码解释
  1. 导入模块

    • wx:用于创建图形用户界面。
    • os:用于文件和目录操作。
    • openpyxl:用于创建和操作 Excel 文件。
    • PIL(Pillow):用于处理图像文件,获取其分辨率。
    • datetime:用于处理文件的创建日期。
  2. 创建 GUI 界面

    • ImageInfoApp 类继承自 wx.Frame,是我们的主窗口。
    • 界面包含一个目录选择器(wx.DirPickerCtrl)和一个按钮(wx.Button),用于选择目录和生成 Excel 文件。
    • 按钮绑定了 on_generate_excel 方法,该方法在用户点击按钮时执行。
  3. 生成 Excel 文件

    • 用户选择目录后,on_generate_excel 方法会遍历该目录及其子目录中的所有图像文件。
    • 获取每个图像文件的名称、路径、创建日期、大小和分辨率,并将这些信息写入到 Excel 文件中。
    • 最终生成的 Excel 文件保存在用户选择的目录中。

运行程序

将上述代码保存为一个 Python 文件(例如 image_info_to_excel.py),然后在终端或命令提示符中运行:

python image_info_to_excel.py

此时会弹出一个窗口,用户可以选择一个文件夹,并点击按钮生成包含图片信息的 Excel 文件。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结

通过这篇博客,我们学习了如何使用 wxPython 创建一个 GUI 应用,从文件夹中提取图片信息并将其导入到 Excel 表格中。这种方法不仅可以用于图片文件,还可以根据需要扩展到其他类型的文件数据提取和整理。如果您有任何问题或建议,欢迎在评论区留言。

这篇关于Python 将文件夹中的图片信息导入到 Excel 的表格的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1000876

相关文章

使用Python删除Excel中的行列和单元格示例详解

《使用Python删除Excel中的行列和单元格示例详解》在处理Excel数据时,删除不需要的行、列或单元格是一项常见且必要的操作,本文将使用Python脚本实现对Excel表格的高效自动化处理,感兴... 目录开发环境准备使用 python 删除 Excphpel 表格中的行删除特定行删除空白行删除含指定

Python通用唯一标识符模块uuid使用案例详解

《Python通用唯一标识符模块uuid使用案例详解》Pythonuuid模块用于生成128位全局唯一标识符,支持UUID1-5版本,适用于分布式系统、数据库主键等场景,需注意隐私、碰撞概率及存储优... 目录简介核心功能1. UUID版本2. UUID属性3. 命名空间使用场景1. 生成唯一标识符2. 数

Java中读取YAML文件配置信息常见问题及解决方法

《Java中读取YAML文件配置信息常见问题及解决方法》:本文主要介绍Java中读取YAML文件配置信息常见问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录1 使用Spring Boot的@ConfigurationProperties2. 使用@Valu

Python办公自动化实战之打造智能邮件发送工具

《Python办公自动化实战之打造智能邮件发送工具》在数字化办公场景中,邮件自动化是提升工作效率的关键技能,本文将演示如何使用Python的smtplib和email库构建一个支持图文混排,多附件,多... 目录前言一、基础配置:搭建邮件发送框架1.1 邮箱服务准备1.2 核心库导入1.3 基础发送函数二、

Python包管理工具pip的升级指南

《Python包管理工具pip的升级指南》本文全面探讨Python包管理工具pip的升级策略,从基础升级方法到高级技巧,涵盖不同操作系统环境下的最佳实践,我们将深入分析pip的工作原理,介绍多种升级方... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

基于Python实现一个图片拆分工具

《基于Python实现一个图片拆分工具》这篇文章主要为大家详细介绍了如何基于Python实现一个图片拆分工具,可以根据需要的行数和列数进行拆分,感兴趣的小伙伴可以跟随小编一起学习一下... 简单介绍先自己选择输入的图片,默认是输出到项目文件夹中,可以自己选择其他的文件夹,选择需要拆分的行数和列数,可以通过

Python中反转字符串的常见方法小结

《Python中反转字符串的常见方法小结》在Python中,字符串对象没有内置的反转方法,然而,在实际开发中,我们经常会遇到需要反转字符串的场景,比如处理回文字符串、文本加密等,因此,掌握如何在Pyt... 目录python中反转字符串的方法技术背景实现步骤1. 使用切片2. 使用 reversed() 函

Python中将嵌套列表扁平化的多种实现方法

《Python中将嵌套列表扁平化的多种实现方法》在Python编程中,我们常常会遇到需要将嵌套列表(即列表中包含列表)转换为一个一维的扁平列表的需求,本文将给大家介绍了多种实现这一目标的方法,需要的朋... 目录python中将嵌套列表扁平化的方法技术背景实现步骤1. 使用嵌套列表推导式2. 使用itert

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

Python使用vllm处理多模态数据的预处理技巧

《Python使用vllm处理多模态数据的预处理技巧》本文深入探讨了在Python环境下使用vLLM处理多模态数据的预处理技巧,我们将从基础概念出发,详细讲解文本、图像、音频等多模态数据的预处理方法,... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核