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

Python文件读取时readline异常迭代的原因是什么?如何修复?

问题原因

你同时使用了两种文件逐行读取机制,触发了重复读行的问题:

  • Python的文件对象本身是可迭代对象,for line in f的执行逻辑是:每进入一次循环,就自动从当前文件指针位置读取一行内容存入line变量,同时将指针移动到下一行的开头
  • 你在循环体内又额外调用了f.readline(),这个方法也会从当前指针位置读取下一行并移动指针,等于每次循环会连续读两行,for循环读出的第一行没有被使用就被跳过了,所以你拿到的永远是奇数行(跳过首行、第三行……)

修正方案

只保留一种读取逻辑即可,推荐直接使用for遍历的行变量,代码最简洁:

with open('deltas11min.txt', 'r') as f:
    for line in f:
        # 直接用for循环读出的line变量即可,无需额外读行
        firstchar = line[:1]
        if firstchar == 'a':
            # 你的剩余业务逻辑
            pass

如果偏好使用readline写法,可以去掉for循环,改用while判断读取终止:

with open('deltas11min.txt', 'r') as f:
    while True:
        f_str = f.readline()
        # readline读到文件末尾会返回空字符串,作为循环终止条件
        if not f_str:
            break
        firstchar = f_str[:1]
        if firstchar == 'a':
            # 你的剩余业务逻辑
            pass

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 02:06:07