Python:循环读取所有文本文件行

新手上路,请多包涵

我想逐行读取巨大的文本文件(如果找到带有“str”的行则停止)。如何检查是否到达文件末尾?

 fn = 't.log'
f = open(fn, 'r')
while not _is_eof(f): ## how to check that end is reached?
    s = f.readline()
    print s
    if "str" in s: break

原文由 Prog1020 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 543
2 个回答

不需要在 python 中检查 EOF,只需执行以下操作:

 with open('t.ini') as f:
   for line in f:
       # For Python3, use print(line)
       print line
       if 'str' in line:
          break

为什么 with 声明

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

原文由 Ashwini Chaudhary 发布,翻译遵循 CC BY-SA 4.0 许可协议

只需遍历文件中的每一行。 Python 会自动检查文件结尾并为您关闭文件(使用 with 语法)。

 with open('fileName', 'r') as f:
    for line in f:
       if 'str' in line:
           break

原文由 Sukrit Kalra 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题