还在为整理几百张图片的尺寸信息而熬夜吗?3分钟学会这个Python小工具,从此告别重复劳动
🥲 每一个熬夜整理图片的人,都值得被温柔以待
上周,我的一位摄影师朋友小林发来一条语音,语气里满是崩溃:
“客户要我把这次旅拍的所有图片尺寸、分辨率、文件大小整理成表格……300多张图,我一张张右键看属性,复制粘贴到手抽筋,搞了整整一个晚上还没弄完😭”
听完我直接笑了——这不就是典型的重复性机械劳动吗?
作为一个经常和图片打交道的自媒体人,我太懂这种痛了:
今天就分享一个我用了很久的Python脚本,让你3分钟搞定原本需要一整晚的工作。
🚀 效果预览:一键生成Excel,就是这么丝滑
假设你的电脑里有一个装满图片的文件夹(甚至包含子文件夹),运行这个脚本后:
输入文件夹路径
选择是否包含子文件夹
回车——搞定!
你会得到一个结构清晰的Excel表格,包含以下信息:
有了这张表,无论是交付客户、整理素材还是做数据统计,都变得无比轻松。
📦 完整代码(复制即用)
import osimport pandas as pdfrom PIL import Imagedef extract_image_info(folder_path, output_file="图片信息.xlsx", include_subfolders=False): """ 批量提取图片尺寸信息到Excel """ # 支持的图片格式 extensions = ('.jpg', '.jpeg', '.png', '.gif', '.bmp', '.webp', '.tiff') image_list = [] if include_subfolders: for root, dirs, files in os.walk(folder_path): for file in files: if file.lower().endswith(extensions): file_path = os.path.join(root, file) rel_path = os.path.relpath(file_path, folder_path) try: with Image.open(file_path) as img: image_list.append({ '文件名': file, '路径': rel_path, '宽度(px)': img.width, '高度(px)': img.height, '分辨率': f"{img.width} x {img.height}", '格式': img.format or '未知', '模式': img.mode, '大小(KB)': round(os.path.getsize(file_path) / 1024, 2) }) except Exception as e: print(f" ⚠️ 无法读取: {file} - {str(e)}") else: for item in os.listdir(folder_path): item_path = os.path.join(folder_path, item) if os.path.isfile(item_path) and item.lower().endswith(extensions): try: with Image.open(item_path) as img: image_list.append({ '文件名': item, '路径': item, '宽度(px)': img.width, '高度(px)': img.height, '分辨率': f"{img.width} x {img.height}", '格式': img.format or '未知', '模式': img.mode, '大小(KB)': round(os.path.getsize(item_path) / 1024, 2) }) except Exception as e: print(f" ⚠️ 无法读取: {item} - {str(e)}") if not image_list: print("❌ 未找到图片文件") return df = pd.DataFrame(image_list) output_path = os.path.join(folder_path, output_file) df.to_excel(output_path, index=False) print(f"✅ 完成!共提取 {len(image_list)} 张图片信息") print(f"📁 保存至: {output_path}")if __name__ == "__main__": print("=" * 50) print("🖼️ 批量提取图片尺寸信息") print("=" * 50) path = input("请输入图片文件夹路径: ").strip() if path.startswith('"') and path.endswith('"'): path = path[1:-1] path = path.replace('\\', '/') if not os.path.exists(path): print("❌ 路径不存在") input("按回车键退出...") exit() sub = input("是否包含子文件夹?(y/n,默认n): ").strip().lower() include_sub = sub == 'y' extract_image_info(path, include_subfolders=include_sub) input("\n按回车键退出...")
🛠️ 安装依赖(只需要一行命令)
在运行代码之前,需要先安装三个Python库:
bash
pip install pillow pandas openpyxl
简单解释一下这三个库的作用:
📝 使用教程(手把手版)
第一步:复制代码保存为.py文件
打开记事本(或VS Code、PyCharm等编辑器),将上面的完整代码复制进去,保存为 提取图片尺寸.py。
第二步:获取文件夹路径
Windows用户:打开你的图片文件夹,点击地址栏复制路径
或者更简单——按住Shift键,右键点击文件夹,选择“复制为路径”。
Mac用户:在文件夹上右键,按住Option键,选择“将xx拷贝为路径名称”。
第三步:运行脚本
打开终端(或命令提示符),cd到脚本所在目录,运行:
bash
python 提取图片尺寸.py
就这么简单!