使用enumerate追踪迭代次数时,如何拆分文本文件内容为指定列表?
问题修复方案
错误原因
使用enumerate(f)遍历文件时,每次循环得到的user是一个元组,格式为(迭代索引, 行文本内容)。而split()是字符串专属方法,元组没有这个属性,因此触发AttributeError。
修复方案
方案1:拆包enumerate的返回值
直接将enumerate返回的元组拆分为索引和行文本,分别处理:
with open("user-id.txt", "r") as f: # start=1 让索引从1开始计数,符合日常习惯 for idx, line in enumerate(f, start=1): # 先去除行尾的换行符,再按冒号分割 user_info = line.strip().split(":") print(f"第{idx}次迭代: {user_info}")
用
with语句可以自动关闭文件,避免资源泄漏,比直接open更安全。
方案2:手动维护迭代计数器
如果不想用enumerate,自己定义计数器变量追踪迭代次数:
count = 1 with open("user-id.txt", "r") as f: for line in f: user_info = line.strip().split(":") print(f"第{count}次迭代: {user_info}") count += 1
输出效果
两种方案都能得到你需要的格式,同时追踪迭代次数:
第1次迭代: ['polas', '872147'] 第2次迭代: ['skridd', '142017']
内容的提问来源于stack exchange,提问作者eternalodballl
相关产品推荐
相关产品推荐

