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

Python中while条件调用readline()无读取内容输出的原因咨询

问题解答

你遇到的现象和Python IO内部机制、while语句的处理规则都没有关系,核心原因是你没有主动打印readline()方法的返回值:

  • Python默认不会自动打印函数/方法的返回值,只有两种情况会输出返回值:一是你显式调用print()函数输出,二是你在Python交互式解释器(REPL)的顶层提示符后直接执行表达式,此时解释器会自动打印表达式返回值。
  • 你代码中把f.readline()放在while的条件判断位置,程序只会读取返回值用来做不等于空字符串的逻辑比较,不会额外触发输出行为,所以你看不到读取到的行内容。

修正后的代码示例

你可以把读取到的行内容赋值给变量,在循环内部显式打印:

f = open("./foo.txt", "r")       # 文件非空,包含多行文本

print(f.tell())                  # 显式打印才能输出指针位置0

line = f.readline()
while line != '':
    print(line, end='')          # 显式打印读取到的行,end=''避免重复换行
    line = f.readline()

print(f.tell())                  # 显式打印文件末尾指针位置
f.close()                        # 用完文件记得关闭

如果要保留你原来的写法结构,也可以在循环体里加打印,但需要额外处理指针位置,不如上面的写法直观。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 06:06:01