
Python遍历文件夹,获取图片信息并存入JSON
下载需积分: 10 | 4KB |
更新于2024-08-06
| 164 浏览量 | 举报
收藏
"该Python脚本用于遍历指定文件夹`./t_images/`下的所有.jpg图片,获取每张图片的文件名、宽度、高度信息,并将这些信息存储到一个字典中。最后,字典内容被序列化为JSON格式并保存到名为`images.json`的文件中。"
在描述的代码中,主要涉及了以下知识点:
1. **Python标准库的使用**:
- `os`: 用于处理文件和目录操作。`os.listdir(dirs)`返回指定目录`dirs`下的所有文件和目录名。
- `json`: 用于JSON数据的编码和解码。`json.dumps(item)`将字典对象转换为JSON格式的字符串。
- `cv2`: OpenCV库,用于图像处理,但在这里未直接使用。
- `PIL`(Python Imaging Library): 用于处理图像,如打开、读取、显示和保存各种图像文件格式。
2. **文件操作**:
- `open()`: 打开文件。使用`"w"`模式表示覆盖写入,`"a"`模式表示追加写入。
- `with`语句:确保文件在使用完毕后会被正确关闭,即使在处理文件时发生异常。
- `encoding='utf-8'`: 指定文件编码为UTF-8,保证文本文件的读写兼容性。
3. **图像处理**:
- `Image.open(dirs+filename)`: 使用PIL库打开图片,返回一个Image对象。
- `im.size`: 获取Image对象的尺寸,返回一个元组,其中第一个元素是宽度,第二个元素是高度。
4. **字典操作**:
- `temp={}`: 创建一个新的字典,用于存储单个图片的信息。
- `temp['height']`, `temp['weight']`, `temp['filename']`, `temp['id']`: 在字典中添加键值对,分别表示图片的高度、宽度、文件名和ID(基于文件名数字部分)。
- `data['images'].append(temp)`: 将单个图片信息的字典添加到存储所有图片信息的列表中。
5. **文件操作的异常处理**:
- `try-except`语句:捕获并处理可能在写入文件过程中出现的异常。
6. **JSON序列化与反序列化**:
- `json.dumps(item)`: 将字典对象`item`转换为JSON格式的字符串,便于写入文件。
- `json.loads(string)`: 反序列化,将JSON格式的字符串转换回Python数据结构,但这里没有用到。
7. **字符串操作**:
- `os.path.splitext(filename)`: 分离文件名和扩展名,返回一个包含两部分的元组。
- `str.isdigit`: 判断字符是否为数字。
- `int("".join(list(filter(str.isdigit,filename))))`: 从文件名中提取纯数字部分并转换为整数,用作图片的ID。
这段代码是一个实用的脚本,可以用来批量处理和记录一个文件夹中所有.jpg图片的相关元数据,然后将其保存为JSON文件,便于后续处理或分析。
相关推荐






乄洛尘
- 粉丝: 5616
最新资源
- 掌握MFC扩展库cjlib6.0,提升VC/MFC界面设计技能
- java手机PDA程序设计入门-王森教程概述
- Nunit 2.4.8源码解读:深入了解开源测试工具
- 清华大学李春葆:SQL Server2000开发实用教程
- Java编码优化实践:20个精选实例解析
- VC++6.0网络五子棋游戏源代码解析
- 智能磁盘驱动程序smartdrv,快速体验启动盘加速
- SYBASE数据库管理工具与浏览体验分享
- VS2005开发环境下的WinCE应用程序开发示例
- XML网站实现地震死难者统计功能
- CurveExpert 1.38:高效数据处理与曲线拟合软件
- 信用社基础知识学习:存款业务与负债管理要点
- C#编程技巧:如何在程序运行时防止计算机关闭
- OpenCV图像处理技术深度讲解与实战代码分享
- Visual FoxPro程序设计教程新编pdg格式学习指南
- JMF API文档下载指南:JAVA音乐开发插件
- GObject编程指南:从基础到高级特性详解
- PC机与GSM模块串口通信代码教程
- OpenGL在VC++实现旋转多面体绘制及光照应用
- Nunit 2.4.8 使用教程:快速入门与进阶指南
- 在Visual C++中配置OpenGL库指南
- 免费获取Telerik Silverlight控件开发版源代码
- 桌面日历软件:有效管理日程安排
- FLV转MPG转换工具:四面褚哥软件存储专家