我有一个文件,我想一次得到每一行,但一旦它到达一个特定的行,我需要得到接下来的几行信息。
以下是代码示例:
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
当我回来第二次循环时,第一个print语句应该打印文件中的第五行。有什么可行的方法吗?
编辑:很抱歉没有澄清细节。
rofile
是我正在迭代的文件对象。我不知道在使用一个文件时,是否是真正的获取下一行的方法。我对Python中的文件操作没有太多经验。 最佳答案
您可以使用iter
将对象转换为支持next
的iterable。
irofile = iter(rofile)
for line in irofile:
print line
if(line == 'foo'):
line = next(irofile) #BEWARE, This could raise StopIteration!
print line
正如注释中指出的那样,如果您的对象已经是迭代器,那么您不需要担心
iter
(这是file
对象的情况)。但是,我把它放在这里,因为它适用于任意不可测的情况(例如list
s)。关于python - Python:对于带文件的循环,如何获取for循环中的下一行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13572062/