我想迭代一个文件,但是如果满足条件则停留在选定的行上。 示例代码:在Python中对文件进行迭代
for line in file:
if 'bla' in line:
//dont increase line position, so next iteration will be on the same line.
我不想使用里面的“如果”另一个循环。 如果条件满足,并且行号例如为1,则在下一次迭代中,同一行将在行变量中(行号仍将是1)。
谢谢。
我想迭代一个文件,但是如果满足条件则停留在选定的行上。 示例代码:在Python中对文件进行迭代
for line in file:
if 'bla' in line:
//dont increase line position, so next iteration will be on the same line.
我不想使用里面的“如果”另一个循环。 如果条件满足,并且行号例如为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)
但是,如果这是不正确,请edit your question,因为它是非常不清楚你在问什么。
如果不清楚你怎么回答? –
我用我的心理技巧 –
他们必须工作得很好,因为从这个问题来看,实际上不可能提供答案。 –
它是很更容易简单地使用两个循环。
for line in file:
while 'bla' in line:
# no iterating done in here
不是使用for循环,而是使用while循环并自己完成迭代。这个例子很蹩脚,因为它在你看到'blah'后没有显示如何前进,但我认为你在那里计划了一些魔法。
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
**为什么重复然后**。为什么你不能在当前迭代*中使用*来做任何你需要的行*? –
请建议您的解决方案。 –
我完全不清楚你最初想做什么。 –