如何将data目录下仅单个字符不同的3个txt文件分组依次输出
实现方案
实现逻辑如下:
- 你的文件名统一按
.分割为6段,第2段是AB[C/D/E]可变部分,剩余5段拼接后就是同一组文件的唯一标识 - 用字典存储所有分组,key为上述唯一标识,value为对应组的文件名列表
- 遍历字典按组输出即可
import glob from collections import defaultdict # 初始化分组字典 file_groups = defaultdict(list) # 遍历所有txt文件 for file_path in glob.glob('/data/*.txt'): # 提取纯文件名 file_name = file_path.split('/')[-1] parts = file_name.split('.') # 生成分组key:去掉第2段可变部分,剩余部分拼接 group_key = '.'.join([parts[0], *parts[2:]]) # 加入对应分组 file_groups[group_key].append(file_path) # 按组输出,sorted可调整组的先后顺序 for group_key in sorted(file_groups.keys()): # 同组内按文件名排序,保证ABC/ABD/ABE的固定输出顺序 group_files = sorted(file_groups[group_key]) for f in group_files: print(f) # 如需组与组之间空行分隔,可取消下一行注释 # print()
如果需要自定义组的输出顺序(比如按年份、天数倒序),修改sorted(file_groups.keys())的排序规则即可,默认字符串排序已满足常规按时间升序的需求。
内容的提问来源于stack exchange,提问作者manas
相关产品推荐
相关产品推荐

