519 字
3 分钟
图片方向分类脚本
前言
前面已经把图片爬回来了,但我是以移动设备和非移动设备进行输出,所以要将爬回来的图片进行分类
然后又让 DeepSeek 写了个python脚本
准备
安装依赖:pip install pillow
脚本
创建一个py文件然后把脚本复制进去
在py文件同一目录创建一个 input 文件夹,将要分类的图片复制进去
运行脚本后将自动分类
支持所有图片格式(webp/jpg/png等),自动保留原始格式
import os
import shutil
from PIL import Image
import argparse
import time
def classify_images(input_dir, horizontal_dir, vertical_dir):
"""
分类图片到横图/竖图目录,跳过方形图
:param input_dir: 输入图片目录
:param horizontal_dir: 横图输出目录
:param vertical_dir: 竖图输出目录
"""
# 支持的图片扩展名
supported_ext = ('.png', '.jpg', '.jpeg', '.webp', '.bmp', '.gif', '.tiff')
# 创建输出目录
os.makedirs(horizontal_dir, exist_ok=True)
os.makedirs(vertical_dir, exist_ok=True)
# 遍历所有文件
for filename in os.listdir(input_dir):
filepath = os.path.join(input_dir, filename)
# 检查是否为文件且支持该格式
if not os.path.isfile(filepath):
continue
ext = os.path.splitext(filename)[1].lower()
if ext not in supported_ext:
continue
try:
# 打开图片并获取尺寸
with Image.open(filepath) as img:
width, height = img.size
# 分类逻辑
if width > height: # 横图
shutil.copy2(filepath, os.path.join(horizontal_dir, filename))
print(f"横图: {filename} ({width}x{height})")
elif height > width: # 竖图
shutil.copy2(filepath, os.path.join(vertical_dir, filename))
print(f"竖图: {filename} ({width}x{height})")
else: # 方形图不处理
print(f"方形图跳过: {filename} ({width}x{height})")
except Exception as e:
print(f"处理失败 {filename}: {str(e)}")
if __name__ == "__main__":
parser = argparse.ArgumentParser(description='图片方向分类工具')
parser.add_argument('--input', type=str, default='./input', help='输入图片目录 (默认: ./input)')
parser.add_argument('--horizontal', type=str, default='./horizontal', help='横图输出目录 (默认: ./horizontal)')
parser.add_argument('--vertical', type=str, default='./vertical', help='竖图输出目录 (默认: ./vertical)')
args = parser.parse_args()
print("="*50)
print(f"输入目录: {args.input}")
print(f"横图目录: {args.horizontal}")
print(f"竖图目录: {args.vertical}")
print("="*50)
classify_images(
input_dir=args.input,
horizontal_dir=args.horizontal,
vertical_dir=args.vertical
)
print("处理完成,等待 60 秒后退出...")
time.sleep(60) # 等待 60 秒使用延申
脚本使用复制操作而非移动,如需改为移动文件,可将 shutil.copy2 替换为 shutil.move
文件夹树状图
text
├── classify_images.py
├── input/ (存放原始图片)
├── horizontal/ (自动创建 - 存放横图)
└── vertical/ (自动创建 - 存放竖图) 图片方向分类脚本