在python中对文件进行迭代

在python中对文件进行迭代,python,python-3.x,Python,Python 3.x,我想在一个文件上迭代,但如果满足条件,就停留在选定的行上。 示例代码: for line in file: if 'bla' in line: //dont increase line position, so next iteration will be on the same line. 我不想在“if”中使用另一个循环。 如果满足条件,例如行号为1,则在下一次迭代中,同一行将位于行变量中。(行号仍然为1) 谢谢。您可以尝试以下方法: keywords = ['blah',

我想在一个文件上迭代,但如果满足条件,就停留在选定的行上。 示例代码:

for line in file:
  if 'bla' in line:
     //dont increase line position, so next iteration will be on the same line.
我不想在“if”中使用另一个循环。 如果满足条件,例如行号为1,则在下一次迭代中,同一行将位于行变量中。(行号仍然为1)


谢谢。

您可以尝试以下方法:

keywords = ['blah', 'foo', 'ok', 'bar']
file = open('myfile.txt')

for line, index in enumerate(file):
    for i in keywords:
        if i in line:
            print "{0} was found in line {1}.".format(i, index)
但是,如果这是不正确的,请注意,因为不清楚您在问什么。

简单地使用两个循环要容易得多

for line in file:
    while 'bla' in line:
        # no iterating done in here

不要使用for循环,而是使用while循环并自己进行迭代。这个例子是站不住脚的,因为它没有显示在你看到“废话”之后如何前进,但我假设你在那里计划了一些魔法

with open('x') as fp:
    try:
        line = next(fp)
        while True:
            if 'bla' in line:
                // not increasing line position
            else:
                line = next(fp)
    except StopIteration:
        pass

那么为什么要迭代呢。为什么不能在当前迭代中使用do what you need the line?请建议您的解决方案。我完全不清楚您首先要做的是什么。您需要扩展您实际要做的事情。如果我想在当前迭代中做我想做的事情,我必须使用另一个循环。如果不清楚,您怎么能这样做回答?我用了我的心理技巧。他们一定很好地工作。从这个问题来看,不可能真正提供答案。他们是一流的,但我肯定op想要别的东西。