如何用Python计算.txt文件中各日期对应的数值总和?
按日期计算文件中数值的总和
正确实现代码
result = {} # 使用with语句自动管理文件资源 with open('TB1.txt', 'r') as file: for line in file: # 去除换行符并分割日期与数值段 day, num_str = line.strip().split(': ') # 将数值字符串转为整数列表并求和 total = sum(map(int, num_str.split(','))) result[day] = total # 输出结果 for day, total in result.items(): print(f"{day}: {total}")
代码说明
- 文件读取:用
with语句打开文件,代码块结束后会自动关闭文件,避免手动关闭遗漏导致的资源浪费。 - 行处理:
strip()去掉每行首尾的换行符和多余空格;- 用
:作为分隔符,把行内容拆成日期名称和数值字符串两部分; - 用
,分割数值字符串,再通过map(int, ...)将每个字符串转为整数,最后用sum()直接计算整行数值的总和。
- 结果存储:用字典存储每个日期对应的总和,方便后续查看或二次处理。
原代码问题分析
- 仅读取了文件第一行(
readline()单次只读取一行),未处理第二行数据; for i in line1是遍历行内的每个字符,而非遍历目标数值,逻辑完全错误;i += line1属于字符拼接操作,不是数值求和,不符合需求。
内容的提问来源于stack exchange,提问作者理マヌゾォ
相关产品推荐
相关产品推荐

