Files
zjsh_yolov11/tool/divide_f_2filim.py
琉璃月光 67883f1a50 最新推送
2026-03-10 14:14:14 +08:00

48 lines
1.7 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import os
import shutil
from pathlib import Path
# ================== 配置 ==================
SOURCE_DIR = "/media/hx/04e879fa-d697-4b02-ac7e-a4148876ebb0/dataset/1/class/class0/3" # 原始图片文件夹
OUTPUT_A = "/media/hx/04e879fa-d697-4b02-ac7e-a4148876ebb0/dataset/1/class/class0/2" # a 子文件夹
OUTPUT_B = "/media/hx/04e879fa-d697-4b02-ac7e-a4148876ebb0/dataset/1/class/class0/4" # b 子文件夹
# 支持的图片扩展名
IMG_EXTENSIONS = {'.jpg', '.jpeg', '.png', '.bmp', '.tiff', '.webp'}
# ================== 创建输出目录 ==================
os.makedirs(OUTPUT_A, exist_ok=True)
os.makedirs(OUTPUT_B, exist_ok=True)
# ================== 获取并排序图片 ==================
source_path = Path(SOURCE_DIR)
if not source_path.exists():
raise FileNotFoundError(f"源文件夹不存在: {SOURCE_DIR}")
# 获取所有图片文件,并按名称排序(确保顺序可重现)
image_files = sorted([
f for f in source_path.iterdir()
if f.is_file() and f.suffix.lower() in IMG_EXTENSIONS
])
if not image_files:
print("⚠️ 源文件夹中没有找到图片!")
exit()
print(f"共找到 {len(image_files)} 张图片,开始分配...")
# ================== 交替分配到 a 和 b ==================
for idx, img_path in enumerate(image_files):
if idx % 2 == 0:
# 偶数索引0, 2, 4...)→ a
dest = os.path.join(OUTPUT_A, img_path.name)
else:
# 奇数索引1, 3, 5...)→ b
dest = os.path.join(OUTPUT_B, img_path.name)
shutil.move(img_path, dest) # 移动原来数据
print(f"[{idx + 1}/{len(image_files)}] {img_path.name}{'a' if idx % 2 == 0 else 'b'}")
print("\n✅ 分配完成!")
print(f"a 文件夹: {OUTPUT_A}")
print(f"b 文件夹: {OUTPUT_B}")