为什么第二个for循环会覆盖Python中的第一个?

时间:2014-08-01 20:57:16

标签: python

我想使用j的单独for循环添加文件 abc 的前七行,其余的后续行作为for i的for循环。但是下面的脚本只给了64行(只执行了i for循环)。

f = open("abc","r")
ff = open("xyz","w")

headers = f.readlines()[0:7]

for j in headers:
   print >>ff, j.rstrip('\n')

lines = f.readlines()[-64:]
for i in lines:
  print >>ff, "ss  ", i.rstrip('\n')

f.close()
ff.close()

可能是什么问题?另外,我可以使用raw_input()

而不是64来使用用户定义的变量

1 个答案:

答案 0 :(得分:2)

这里的问题是第一次调用f.readlines()会通过全部读取来耗尽文件。然后你将前七行扔掉。尝试类似:

content = file.readlines()
headers = content[:7] # the starting zero is implied
    :
    :
lines = content[-64:]

这样你就不会在耗尽的文件上使用readlines()