Python读取文本文件仅返回首行,如何实现每行索引与内容元组返回?
问题分析与解决
你的代码只返回单行结果的核心原因是没有遍历所有行,仅处理了单个元素,且行号与内容的对应逻辑也存在错误。
原代码问题点
- 仅对
index做了一次自增操作,没有循环遍历所有清理后的行 - 直接取
cleaned_lines[index]会导致索引错位(index初始为0,自增后为1,对应第二行内容,却标注为行号1) - 最终只生成了单个行号+内容的列表,而非所有行的集合
修正后的代码
def read_word_file(filename): line_list = [] with open(filename, 'r') as file: # 使用enumerate直接获取从1开始的行号和每行内容 for line_num, line_content in enumerate(file, start=1): # 移除换行符后,将行号与内容组成列表存入结果 line_list.append([line_num, line_content.rstrip('\n')]) return line_list print(read_word_file(r"handins\british-english"))
代码说明
- 用
enumerate(file, start=1)遍历文件对象,无需提前读取所有行到内存,更高效 - 循环过程中自动生成从1开始的行号,直接对应每行内容,避免索引错误
- 每处理一行就将结果添加到列表,最终返回包含所有行信息的列表
内容的提问来源于stack exchange,提问作者Lithops
相关产品推荐
相关产品推荐

