You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python按指定顺序处理命名为Im_260x_y的JPG图像文件

Python 实现指定顺序处理图像代码

实现思路

  • 先给指定排序的y值生成优先级映射,确保同x下的文件能按要求的y顺序排列
  • 用正则匹配筛选符合命名规则的JPG文件,解析文件名中的x、y值
  • 以(x升序,y对应优先级升序)为排序键对文件列表排序
  • 遍历排序后的列表执行自定义处理逻辑

完整代码

import os
import re

# 定义y的指定排序顺序,可根据需求调整
Y_ORDER = [0, 1, 4, 8, 16, 32, 64, 128, 258]
# 生成y值到排序权重的映射
y_weight_map = {y_val: idx for idx, y_val in enumerate(Y_ORDER)}
# 替换为你实际的图像存放目录路径
IMG_DIR = "./your_image_directory"
# 文件名匹配正则,后缀如果是小写jpg可修改为jpg,或加re.IGNORECASE忽略大小写
FILE_PATTERN = r"^Im_260(\d+)_(\d+)\.JPG$"

if __name__ == "__main__":
    # 收集所有符合规则的文件信息
    valid_file_list = []
    for file_name in os.listdir(IMG_DIR):
        match_res = re.match(FILE_PATTERN, file_name)
        if not match_res:
            continue
        # 解析x、y值
        x_val = int(match_res.group(1))
        y_val = int(match_res.group(2))
        # 校验x、y的合法范围,过滤无效文件
        if 1 <= x_val <= 67 and y_val in y_weight_map:
            valid_file_list.append((file_name, x_val, y_val))
    
    # 按要求排序:先按x升序,同x按y的指定顺序升序
    valid_file_list.sort(key=lambda item: (item[1], y_weight_map[item[2]]))
    
    # 遍历处理文件
    for file_info in valid_file_list:
        file_name, x, y = file_info
        full_file_path = os.path.join(IMG_DIR, file_name)
        # --------------------------
        # 这里写你自己的文件处理逻辑
        # --------------------------
        print(f"处理文件:{file_name} | x={x} | y={y}")

注意事项

  • 若文件后缀为小写.jpg,可修改正则中的JPG为jpg,或者将re.match(FILE_PATTERN, file_name)改为re.match(FILE_PATTERN, file_name, re.IGNORECASE)忽略大小写
  • 代码会自动跳过不符合命名规则、x或y不在指定范围的文件,避免异常
  • 只需修改IMG_DIR为你的实际目录,再替换处理逻辑部分的代码即可使用

内容的提问来源于stack exchange,提问作者Farah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 22:45:06