You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中readlines()能获取行数却无法打印内容的原因及解决方法

问题分析与解决

问题背景

userdb 文件内容

line1
line2
line3

测试代码

with open("userdb","r",encoding='utf-8') as fl:
    user_count = len(fl.readlines())
    print(fl.readlines())
    print(user_count)

运行输出

[]
3

行数统计结果正常,但第二次调用readlines()无法打印文件内容,原因及解决方法如下:

原因

readlines()方法会一次性读取文件所有行,同时将文件指针移动到文件末尾。第一次调用fl.readlines()时已经读完了所有内容,此时指针停在文件最后位置;第二次再调用时,从当前指针位置往后没有任何内容,所以返回空列表[]。而第一次读取的行数已经被存入user_count变量,因此能正常输出3。

解决方法

有两种实用的解决方式:

  1. 先把读取的内容存入变量,后续直接复用这个变量
with open("userdb","r",encoding='utf-8') as fl:
    lines = fl.readlines()  # 一次性读取所有行并保存
    user_count = len(lines)
    print(lines)
    print(user_count)
  1. 调用seek(0)重置文件指针到开头
with open("userdb","r",encoding='utf-8') as fl:
    user_count = len(fl.readlines())
    fl.seek(0)  # 将文件指针移回文件起始位置
    print(fl.readlines())
    print(user_count)

内容的提问来源于stack exchange,提问作者user18292031

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 00:35:18