求助:逐行读取文件时无需存储列表即可计算数值总和
解决逐行读取文件计算数值总和的问题
嘿,这问题其实很好解决!你要的是不存储所有数值到列表,边读边算总和的简便实现对吧?给你两种实用的写法:
写法一:显式循环累加(直观易读)
这种方式逻辑清晰,适合刚接触的朋友,也方便后续扩展额外处理逻辑:
total = 0 # 使用with语句自动管理文件关闭,避免资源泄漏 with open('sample.txt', 'r') as file: for line in file: # 先去掉每行的换行符和前后空格,避免转int出错 cleaned_line = line.strip() # 跳过空行(如果文件里有的话) if cleaned_line: total += int(cleaned_line) print(total) # 输出结果:21
写法二:生成器表达式+sum函数(简洁高效)
如果追求代码简洁,直接用Python内置的sum()函数配合生成器表达式就行,全程不需要额外列表存储,内存占用极低:
with open('sample.txt', 'r') as file: total = sum(int(line.strip()) for line in file if line.strip()) print(total) # 输出结果:21
小提示
- 两种写法都是逐行读取并即时累加,不会把所有数字加载到内存里,就算是超大文件也能轻松处理
strip()是为了处理每行末尾的换行符,以及可能存在的空格;if line.strip()是防止文件里有空行导致转int报错
内容的提问来源于stack exchange,提问作者Alexander West
相关产品推荐
相关产品推荐

