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

cyb*_*oof 0 python file

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

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

我只是觉得有一个比计数增量更好的方法,然后尝试在循环内部打破.

Mar*_*ers 8

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

from itertools import islice

with open(filename) as f:
    for line in islice(f, 100):
Run Code Online (Sandbox Code Playgroud)

在这里,我还使用文件对象作为上下文管理器 ; 该with语句确保在退出代码块时再次关闭文件.

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

for i, line in enumerate(f):
    if i > 100:
Run Code Online (Sandbox Code Playgroud)


Ash*_*ary 6

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

from itertools import islice

with open(varFilename) as f:
    for line in islice(f, 10):
        #do something here
Run Code Online (Sandbox Code Playgroud)

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

with在处理文件对象时,最好使用关键字.这样做的好处是文件在套件完成后正确关闭,即使在途中引发了异常.