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 datetime

class 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 worksheet
        wb = Workbook()
        ws = wb.active
        ws.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 KB
                    
                    try:
                        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 表格中。这种方法不仅可以用于图片文件,还可以根据需要扩展到其他类型的文件数据提取和整理。如果您有任何问题或建议,欢迎在评论区留言。

  • 39
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值