我有一个包含很多行的大文件,我想先读取第一行,然后再次从第一行开始遍历所有行。
我首先想到的是这样的事情:
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 语句,因此计算成本有点高。
最佳答案
你可以这样做:
with open('fileName', 'r') as file:
first_line = file.readline()
DoStuff_1(first_line)
DoStuff_2(first_line)
# remaining lines
for line in file:
DoStuff_2(line)
请注意,我更改了您的代码以使用 with
,因此 file
会自动关闭。
关于python - 如何读取文件的第一行两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31234047/