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 

3 Solutions collect form web for “Python:读取循环中的所有文本文件行”

在python中不需要检查EOF,只需要:

 with open('t.ini') as f: for line in f: print line if 'str' in line: break 

为什么用with声明 :

处理文件对象时,最好使用with关键字。 这有一个好处,就是文件在套件结束后可以正常closures,即使在路上出现exception。

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

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

有些情况下,你不能使用(相当有说服力) with... for...结构。 在这种情况下,请执行以下操作:

 line = self.fo.readline() if len(line) != 0: if 'str' in line: break 

这将工作,因为readline()留下一个尾随的换行符,其中EOF只是一个空string。

  • NumPy Matrix与Array类的乘法有何不同?
  • 为什么在python 0,0 ==(0,0)等于(0,False)
  • 为什么Python easy_install无法在我的Mac上运行?
  • 在64位Windows上列出正在运行的进程
  • matplotlib中的表面图
  • PyCharm不识别Python文件
  • 如何创build一个空的R向量来添加新的项目
  • 正则expression式的最坏情况分析
  • 在包装函数之前,我可以修补Python装饰器吗?
  • 如何将Dataframe单元格内的列表分解为单独的行
  • 将列表的列表放入pandasDataFrame中