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

Python实现文件名拆分后元素的分组与出现次数统计

文件分组统计解决方案

问题描述

我有50个遵循特定命名规则的文件,可通过下划线“_”拆分文件名,取拆分后的第3个元素(索引为3)获取产品名称。已导入文件路径并将文件存入变量,能完成拆分并输出列表,但无法按名称(如Books、Papers等)分组统计各元素的出现次数,期望得到类似“apple 4”“orange 9”格式的统计结果。现有代码如下:

import os
# local path to files.
path_in = '/Users/username/Downloads/my_list' 
for file in os.listdir(path_in):
        # split produce item by name via '_' delimiter.
        split_file = file.lower().split('_') # 3rd Element only since produce.

解决代码

import os
from collections import defaultdict

# 文件路径
path_in = '/Users/username/Downloads/my_list' 
# 初始化统计字典,默认计数为0
product_counts = defaultdict(int)

for file in os.listdir(path_in):
    split_parts = file.lower().split('_')
    # 避免文件名不符合规则导致索引越界
    if len(split_parts) > 3:
        product = split_parts[3]
        product_counts[product] += 1

# 按要求格式输出统计结果
for name, count in product_counts.items():
    # 左对齐占10个字符,保证名称和数字间的空格整齐
    print(f"{name:<10}{count}")

关键说明

  • 用defaultdict可以直接对不存在的键计数,无需额外判断,简化代码
  • 增加长度检查,防止部分文件名拆分后元素不足导致报错
  • 格式化输出时用<10控制名称的宽度,让结果格式统一,可根据实际需求调整宽度值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 08:12:08