如何在python中更好地读取文件的行

时间:2014-08-29 17:36:40

标签: python file

除了这种方式之外,是否有更多的python友好方式从文件中读取100行:

  f=open(varFilename,"r")
  count=0
  for fileLine in f:
      print fileLine
      count+=1
      if count>100:
          break

我觉得有一种比计数增量更好的方法,然后尝试在循环中打破。

2 个答案:

答案 0 :(得分:8)

使用itertools.islice()将文件对象迭代器限制为仅100行:

from itertools import islice

with open(filename) as f:
    for line in islice(f, 100):

此处我还将文件对象用作context manager; with语句确保在退出代码块时再次关闭文件。

如果您不需要限制迭代次数但只需要循环中的计数器,请不要使用单独的计数器。请改用enumerate()

for i, line in enumerate(f):
    if i > 100:

答案 1 :(得分:6)

您可以使用itertools.islice从文件对象中获取第一行n行:

from itertools import islice

with open(varFilename) as f:
    for line in islice(f, 10):
        #do something here

在处理文件时使用with语句:

  

在处理文件时,最好使用with关键字   对象。这样做的好处是文件在之后正确关闭   它的套件即使在路上引发异常也会完成。