Rob*_* IV 13 python for-loop file
我有一个文件,我想一次获得每一行,但一旦它到达一个特定的行,我需要获得接下来的几行信息.
这是一个代码示例:
rofile = open('foo.txt', 'r')
for line in rofile:
print line
if(line.strip() == 'foo'):
line = line.next()
print line
line = line.next()
print line
line = line.next()
print line
Run Code Online (Sandbox Code Playgroud)
当我第二次回来并循环时,第一个print语句应该打印文件中的第5行.有没有办法做到这一点?
编辑:很抱歉没有澄清细节.rofile是我正在迭代的文件对象.next()使用文件时是否是获取下一行的真正方法,我不知道.我对python中的文件操作没有多少经验.
mgi*_*son 12
您可以使用iter将对象转换为支持的iterable next.
irofile = iter(rofile)
for line in irofile:
print line
if(line == 'foo'):
line = next(irofile) #BEWARE, This could raise StopIteration!
print line
Run Code Online (Sandbox Code Playgroud)
正如评论中所指出的,如果你的对象已经是一个迭代器,那么你不必担心iter(这是file对象的情况).但是,我将它留在这里,因为它适用于任意迭代(例如lists)的情况.