读取文件直到python中的特定行

时间:2014-11-25 19:53:38

标签: regex python-2.7

我有一个文本文件。我正在使用正则表达式解析一些数据。所以打开文件并阅读它并解析它。但我不想在该文本文件中的某些特定行之后读取和解析数据。例如

file start here..
some data...
SPECIFIC LINE
some data....

现在我不想在SPECIFIC LINE之后阅读文件...... 当那条线到达时有没有办法停止阅读?

3 个答案:

答案 0 :(得分:5)

这很简单,您可以使用break语句提前终止循环。

filename = 'somefile.txt'

with open(filename, 'r') as input:
   for line in input:
       if 'indicator' in line:
            break

使用with创建一个复合语句,确保在进入和离开with语句__enter__()__exit__()的范围时分别进行调用。出于文件读取的目的,这将防止任何悬空文件句柄。

break语句告诉循环立即终止。

答案 1 :(得分:4)

使用iter()的{​​{1}}参数:

sentinel

输出:

with open('test.txt') as f:
    for line in iter(lambda: f.readline().rstrip(), 'SPECIFIC LINE'):
        print(line)

参考:https://docs.python.org/2/library/functions.html#iter

答案 2 :(得分:0)

只读取前 n而不加载整个文件:

n = 5
with open(r'C:\Temp\test.txt', encoding='utf8') as f:
    head = [next(f) for x in range(n)]