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

Python中如何用file.readline()区分EOF与空行?

处理含大量空行的文件:Python区分空行与EOF的实用方案

我需要处理一个名为filename.txt的大文件,文件里有大量空行,要求遇到空行直接忽略,碰到文件末尾(EOF)就终止程序。Python本身没有直接区分空行和EOF的方法,但实际测试后找到了可行的解决思路:

测试发现的行特征

  • 空行的长度为1(因为包含CRLF换行符),和仅含1个字符的行长度一致
  • 对空行执行strip()后会得到空字符串,长度为0
  • 所有从文件读取的行,其长度等于实际有效字符数加1(额外的1是CRLF换行符)
  • 执行strip()后的行长度,等于该行的实际有效字符数

解决办法

由于我原本就需要对读取的内容做strip()处理,所以调整逻辑为:读取每一行后立即执行strip(),如果处理后的字符串为空(长度为0),就判定这是个空行并跳过;当循环自动结束时,就说明已经到达EOF,程序自然终止。

示例代码:

with open('filename.txt', 'r') as f:
    for line in f:
        processed_line = line.strip()
        if not processed_line:
            continue  # 忽略空行
        # 这里写你对非空行的处理逻辑
        print(processed_line)

内容的提问来源于stack exchange,提问作者DR ROBERT E PETERSEN

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 00:16:12