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

Python:enumerate结合readline读取文件为何未得到预期行?

为什么这段Python代码读不到CSV的第一行?

你的Python代码:

myfile = open("test-file.csv", "r")
for k, line in enumerate(myfile,0):
   if k == 0:
      myline = myfile.readline()
      print(myline)
      break
myfile.close()

test-file.csv内容:

0. Zeroth
1. First
2. Second
3. Third

实际输出:

1. First

预期输出:

0. Zeroth

问题出在文件指针的移动逻辑上:

  • 用for k, line in enumerate(myfile, 0)遍历文件对象时,每一次循环都会自动读取文件的下一行。第一次循环(k=0)时,line变量已经拿到了第一行内容0. Zeroth。
  • 但你紧接着调用myfile.readline(),会让文件指针再往下移动一行,读取到第二行的1. First,最后打印的就是这一行。
  • 随后break跳出循环,自然拿不到预期的第一行。

修正方法:

直接打印已经拿到的line即可,不需要额外调用readline():

myfile = open("test-file.csv", "r")
for k, line in enumerate(myfile, 0):
    if k == 0:
        print(line)
        break
myfile.close()

或者更简洁的写法(直接读取第一行,还能自动关闭文件):

with open("test-file.csv", "r") as myfile:
    print(myfile.readline())

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 16:50:22