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

如何用Python按mode、不同seed及相同speed分组CSV文件路径

Python按mode、相同speed分组CSV文件路径

需求说明

给定一组CSV文件绝对路径,需按相同mode、相同speed,不同seed的规则分组。文件命名格式为绝对路径/(mode)(seed)_speedX.csv,最终输出需将路径中的alpha2转换为alpha_2、beta1转换为beta_1,匹配指定格式。

解决方案代码

import os
from collections import defaultdict

csv_filepaths = [
    'C:/Users/DELL/Documents/abc/alpha_586893215_speed0.csv',
    'C:/Users/DELL/Documents/abc/alpha_586893215_speed4.csv',
    'C:/Users/DELL/Documents/abc/alpha2_123456787_speed0.csv',
    'C:/Users/DELL/Documents/abc/alpha2_123456787_speed4.csv',
    'C:/Users/DELL/Documents/abc/alpha2_886589746_speed0.csv',
    'C:/Users/DELL/Documents/abc/alpha2_886589746_speed4.csv',
    'C:/Users/DELL/Documents/abc/beta1_52186893215_speed0.csv',
    'C:/Users/DELL/Documents/abc/beta1_52186893215_speed4.csv',
    'C:/Users/DELL/Documents/abc/beta1_86893215_speed0.csv',
    'C:/Users/DELL/Documents/abc/beta1_86893215_speed4.csv'
]

# 初始化分组字典,键为(mode, speed),值为对应路径列表
groups = defaultdict(list)

for path in csv_filepaths:
    # 提取文件名并拆分关键部分
    filename = os.path.basename(path)
    name_part, speed_str = filename.replace('.csv', '').split('_speed')
    speed = f"speed{speed_str}"
    
    # 分离mode和seed
    last_underscore = name_part.rfind('_')
    mode = name_part[:last_underscore]
    
    # 转换mode格式以匹配输出要求
    mode_map = {'alpha2': 'alpha_2', 'beta1': 'beta_1'}
    mode = mode_map.get(mode, mode)
    
    # 转换路径格式
    formatted_path = path
    for old, new in mode_map.items():
        if old in formatted_path:
            formatted_path = formatted_path.replace(old, new)
    
    # 加入对应分组
    groups[(mode, speed)].append(formatted_path)

# 按speed、mode排序后输出
sorted_groups = sorted(groups.values(), key=lambda x: (int(x[0].split('_speed')[-1].replace('.csv', '')), x[0].split('/')[-1].split('_')[0]))

for group in sorted_groups:
    print(group)

运行结果

['C:/Users/DELL/Documents/abc/alpha_586893215_speed0.csv']
['C:/Users/DELL/Documents/abc/alpha_2_123456787_speed0.csv', 'C:/Users/DELL/Documents/abc/alpha_2_886589746_speed0.csv']
['C:/Users/DELL/Documents/abc/beta_1_52186893215_speed0.csv', 'C:/Users/DELL/Documents/abc/beta_1_86893215_speed0.csv']
['C:/Users/DELL/Documents/abc/alpha_586893215_speed4.csv']
['C:/Users/DELL/Documents/abc/alpha_2_123456787_speed4.csv', 'C:/Users/DELL/Documents/abc/alpha_2_886589746_speed4.csv']
['C:/Users/DELL/Documents/abc/beta_1_52186893215_speed4.csv', 'C:/Users/DELL/Documents/abc/beta_1_86893215_speed4.csv']

内容的提问来源于stack exchange,提问作者Muhammad Abdur Rehman Siddiqui

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 02:35:19