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

Python中使用readline()读取文件时如何检测EOF?

Python 3.6+ 检测readline()是否到达EOF的解决方案

核心判定逻辑

Python中使用readline()逐行读取文本文件时,到达EOF(文件末尾)会返回空字符串'',不会抛出任何常规业务场景的异常,直接通过返回值即可完成判定。
注意需要区分空行与EOF:文件中的空行读取结果为带换行符的'\n',布尔值判定为True,只有EOF返回的完全空字符串布尔值判定为False,不会出现误判。
如果是二进制模式打开文件('rb'模式),逻辑完全一致,仅EOF返回值为二进制空串b'',通用判定逻辑无需调整。

适配后的代码示例

with open(file_name, 'r') as i_file:
    while True:
        line = i_file.readline()
        # EOF判定逻辑,兼容文本、二进制模式
        if not line:
            # 到达文件末尾,跳出循环终止读取
            break
        # 此处编写你的业务逻辑处理读取到的行

异常说明

正常读取流程下到达EOF不会抛出异常,仅当出现文件被意外关闭、读取权限被修改、磁盘IO故障等非常规错误时,才会抛出IO类异常,该类异常属于通用文件操作异常,和EOF判定无关。

版本兼容性

上述逻辑完全兼容Python 3.0及以上所有版本,天然支持3.6及以上运行环境,无额外依赖。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 16:27:01