【发布时间】:2015-09-22 21:40:48
【问题描述】:
我有一个包含很多行的大文件,我想先读取第一行,然后再从第一行开始循环遍历所有行。
我首先认为类似的事情会做到这一点:
file = open("fileName", 'r')
first_line = file.readline()
DoStuff_1(first_line)
for line in file:
DoStuff_2(line)
file.close()
但是这个脚本的问题是传递给DoStuff_2 的第一行是第二行而不是第一行。我对 file 是什么类型的对象没有很好的直觉。我认为它是一个迭代器,并不真正知道如何处理它。我发现的不好的解决方案是
file = open("fileName", 'r')
first_line = file.readline()
count = 0
for line in file:
if count == 0:
count = 1
DoStuff_1(first_line)
DoStuff_2(line)
file.close()
但它非常愚蠢,而且计算成本有点高,因为它在每次迭代时都运行一个 if 语句。
【问题讨论】:
-
open在 python 中返回一个生成器。 :P