在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想要别的东西。