Python读取txt文件逐行添加行号输出的问题修复及正确代码
问题原因
- 原有代码调用
readline(i)时传入的参数i代表读取的最大字符数而非读取指定行,是内容截断的核心原因 - 遍历用的
range(1, num_lines)为左闭右开区间,会遗漏最后一行,导致行号匹配错误 - 两次手动打开文件未安全关闭,存在资源泄漏风险
正确实现代码
# 上下文管理器自动管理文件句柄,无需手动调用close释放资源,指定编码避免跨平台乱码 with open("test.txt", "r", encoding="utf-8") as f: # enumerate内置支持指定起始计数,从1开始直接匹配行号需求 for line_num, line_content in enumerate(f, start=1): # rstrip('\n')移除原行末换行符,避免输出多空行 print(f"[{line_num}] {line_content.rstrip('\n')}")
该实现无需提前统计文件行数,逐行迭代的内存占用极低,适配大文件读取场景,输出格式完全匹配预期。
内容的提问来源于stack exchange,提问作者QuicKiller
相关产品推荐
相关产品推荐

