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

Python使用Pathlib统计文件大小求和时报'long'对象不可迭代如何解决

错误原因

sum()函数要求传入可迭代对象(如列表、元组、生成器)才能完成求和操作,你原有代码中file_size在每次循环时都被赋值为单个文件的字节大小数值(属于长整型/整型),本身不支持迭代,因此调用sum(file_size)会抛出TypeError: 'long' object is not iterable错误。

修复后的代码

方法1:循环累加(和你原有写法逻辑最贴近,保留单文件大小打印)

from pathlib import Path

# 初始化总大小计数器
total_size = 0
for path in Path('C:\\Users\\file\\path\\here').rglob('*.kml'):
    # path本身就是Path实例,无需重复封装Path(),也无需重复调用stat()
    file_size = path.stat().st_size
    print(file_size)
    # 累加单文件大小到总计数器
    total_size += file_size

print(f"所有.kml文件总大小:{total_size} 字节")
# 如需转换为MB单位可使用下行代码
# print(f"所有.kml文件总大小:{total_size / 1024 / 1024:.2f} MB")

方法2:生成器表达式简洁写法

如果不需要打印单个文件的大小,可直接用生成器配合sum完成求和,代码更精简:

from pathlib import Path

file_root = Path('C:\\Users\\file\\path\\here')
total_size = sum(path.stat().st_size for path in file_root.rglob('*.kml'))
print(f"所有.kml文件总大小:{total_size} 字节")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 17:15:03